2013-12-20 51 views
1

我在PHP中使用simpleXML时遇到问题。我的问题是,我得到数组而不是字符串或整数。SimpleXML返回数组而不是字符串或INT

通过的file_get_contents即时得到下面的XML

<?xml version="1.0" encoding="UTF-8"?> 
<data> 
    <name>579</name> 
    <price>46</price> 
</data> 

在IM即时通讯的PHP使用此:

$xml = simplexml_load_string(file_get_contents($url)); 
print_r($xml->price) // returns array(0 => "46") instead of 46 

是否有人有一个想法如何,我可以得到的字符串?

回答

2

你需要明确强制转换为字符串(或int,在这种情况下):

$price = (string) $xml->price; 
echo $price; // => string(2) "46" 
+0

谢谢。你知道为什么arraynynotation($ xml ['price'])不起作用吗? – AppGeer

+1

@KevinTurner:它不是**数组。它是一个SimpleXMLElement对象(准确地说是一个libxml资源),作为var_dump($ xml-> price);'会告诉你。 –

0

你要使用strval它从SimpleXMLElement转换为字符串。如果您想要取得整数值,请使用intval

使用strval

$xml = simplexml_load_string(file_get_contents($url)); 
$price = strval ($xml->price); 

intval

$xml = simplexml_load_string(file_get_contents($url)); 
$price = intval ($xml->price); 
相关问题