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
应该工作
答
$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>
标记。
“echo”是必要的显式转换,还是仅仅是“好风格”? – Tomalak 2010-09-23 07:48:04
@Tomalak - 在简单xml实现中,我必须明确地做到这一点,否则它会尝试回显对象引用。也许在更新的实现中,你不必这样做,因为toString方法自动执行它? – 2010-09-23 07:54:22