我想从具有特定属性'id'的xml中选择一个元素。 这是我的xml:查找具有属性的元素 - SimpleXML xpath
<listitems>
<item id="1">
<name>item 1</name>
</item>
<item id="2">
<name>item 2</name>
</item>
<item id="3">
<name>item 3</name>
</item>
</listitems>
这个php文件:
<?php
$simplexml = simplexml_file_load('test.xml');
$item = $simplexml->xpath('item[@id="1"]');
?>
然后,如果我尝试,例如:
<?php $item->addchild('description','textdescription'); ?>
我在最后一行出现此错误: “致命错误:调用一个非对象的成员函数addchild()”
有没有事情错了?
我不知道SimpleXML,所以这不是一个答案。但是,我敢打赌,它的默认行为(与XSLT一致)是返回XPath的字符串值,在本例中为“item 1”。我怀疑还有另一个函数返回NODELIST。 – parsifal
其实它恰恰相反。无论xpath表达式的实际值如何,SimpleXML xpath总是返回'SimpleXMLElement'(一个元素列表)。 –
这是'simplexml_load_file'而不是'simplexml_file_load' – Gordon