PHP - 解析simplexml_load_string()创建的XML对象

时间:2010-09-23 07:36:39

标签: php xml parsing simplexml

我正在尝试读取XML中的simplexml_load_string()方法的XML根节点的属性值。

这是一个例子,

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

我试图在上面的XML字符串中读取'status'的值:

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

语句也不起作用,var_dump()输出“NULL”。

5 个答案:

答案 0 :(得分:4)

echo (string)$userNode->attributes()->status应该有效

答案 1 :(得分:2)

除了attributes()方法之外,您可以通过将元素对象视为数组来简单地访问元素的属性(SimpleXMLElement实现ArrayAccess

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

我错过了以下cURL参数,

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");

我将布尔值(cURL响应)视为XML文件:)

谢谢大家......

答案 4 :(得分:0)

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