Mar*_*hia 0 php xml xpath simplexml
我正在尝试从我的xml中选择一个具有特定属性"id"的元素.这是我的xml:
<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>
Run Code Online (Sandbox Code Playgroud)
这个php文件:
<?php
$simplexml = simplexml_file_load('test.xml');
$item = $simplexml->xpath('item[@id="1"]');
?>
Run Code Online (Sandbox Code Playgroud)
然后,如果我尝试,例如:
<?php $item->addchild('description','textdescription'); ?>
Run Code Online (Sandbox Code Playgroud)
我在最后一行得到这个错误:"致命错误:在非对象上调用成员函数addchild()"
有什么不对的吗?
Tho*_*ley 12
SimpleXML的xpath()总是返回一个元素数组,即使你用id指定它也是如此.要向其中添加内容,您需要从该数组中提取特定元素.
试试这个:
$items = $simplexml->xpath('item[@id="1"]');
$item = $items[0];
$item->addchild('description','textdescription');
Run Code Online (Sandbox Code Playgroud)
或者更好的是,验证您确实找到了具有该ID的内容:
$items = $simplexml->xpath('item[@id="1"]');
if (count($items) == 1)
{
$item = $items[0];
$item->addchild('description','textdescription');
}
Run Code Online (Sandbox Code Playgroud)