PHP - 解析由simplexml_load_string()生成的XML对象

问题描述:

我正在尝试读取PHP中的simplexml_load_string()方法的XML的根节点属性值。PHP - 解析由simplexml_load_string()生成的XML对象

下面是一个例子,

<data status="Active"> 
<user> <userid> 1 </userid> </user> 
<user> <userid> 2 </userid> </user> 
<data> 

我想读的“状态”上述XML字符串中的值:

echo $xml->user[0]->userid; 
echo $xml->attributes()->status 

的陈述没有工作过,var_dump()输出“空值”。

echo (string)$userNode->attributes()->status应该工作

+0

“echo”是必要的显式转换,还是仅仅是“好风格”? – Tomalak 2010-09-23 07:48:04

+0

@Tomalak - 在简单xml实现中,我必须明确地做到这一点,否则它会尝试回显对象引用。也许在更新的实现中,你不必这样做,因为toString方法自动执行它? – 2010-09-23 07:54:22

$xml = simplexml_load_string('<user status="Active"></user>'); 

echo $xml->attributes()->status; 

除了attributes()方法,你可以简单地通过处理元素对象像访问数组元素的属性(的SimpleXMLElement实现ArrayAccess

$xml = simplexml_load_string('<user status="Active"></user>'); 
echo 'status=', $xml['status']; 

但要访问属性的其他名称空间必须使用attributes()(afaik)。

感谢您的回复... 解析并不是真正的问题。

我错过下面卷曲参数,

curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"); 

我治疗一个布尔值(卷曲响应)作为一个XML文件:

感谢所有...

很抱歉,但在您的示例XML您没有关闭您的结尾<data>标记。