使用simpleXML更改xml节点的值

时间:2014-01-09 20:38:13

标签: php xml

我有这个xml示例

<items>
 <item>
    <id>k1</id>
    <price>456</price>
 </item>
 <item>
    <id>k2</id>
    <price>609</price>
 </item>
</items>

php code

$xml = simplexml_load_file(address of xml file);
     foreach ($xml->item as $item){
                 if($item->id == 'k2') {
                    item->price = 800;
             }
     }

如果我想用simpleXML更改第二项的值我该怎么做?我知道我可以读取这个$ val = item-&gt;价格并将值保存到变量中;但如果我想用这个简单的代码项改变价值 - &gt; price = 800;它不起作用。为什么会这样?这是一件简单的事情,但仍然很难......谢谢

1 个答案:

答案 0 :(得分:0)

使用xpath选择您想要的<item>并进行更新:

$xml = simplexml_load_string($x); // assume XML in $x

$result = $xml->xpath("/items/item[id = 'k2']");
$result[0]->price = 800;

echo $xml->asXML();

看到它有效:https://eval.in/88021