我正在尝试加载xml节点<item id="n">
,其中id
中指定了$id
。
$xml=simplexml_load_file("news.rss");
foreach($xml->channel->item[$id]->attributes() as $a => $b) {
echo $a,'="',$b,"\"\n";
}
将返回PHP Fatal error: Call to a member function attributes() on a non-object
。
但是,将第2行的$id
更改为1
之类的数字会使其正常工作。这里发生了什么? $id
是一个整数。
答案 0 :(得分:0)
您无法按类似属性访问SimpleXMLElement
个元素。方括号中的数字是指元素索引(基于零)。
如果要按属性查找元素,请使用XPath
foreach ($xml->channel->xpath("item[@id='$id']") as $item) {
foreach($item->attributes() as $a => $b) {
echo $a, '="', $b, '"', PHP_EOL;
}
}
在这里演示 - http://ideone.com/Y6NGy2