PHP - 更新XML属性

时间:2014-09-24 04:21:05

标签: php xml

我正在尝试更新XML文档。我从一个包含XML的字符串开始。

我将该字符串加载到SimpleXMLElement对象:

$xmlDoc = simplexml_load_string($my_xml_string);

我找到了一个我想要更新的节点:

$node= $xmlDoc->xpath("//nodename[@node_attribute='{$search_attribute_value}']");

现在我想更新node_attribute属性。我尝试$node['node_attribute']=$new_attribute_value $node $xmlDoc是它自己的对象,这不会更新$xmlDoc对象。

如何在{{1}}中查找和更新属性值?

2 个答案:

答案 0 :(得分:2)

你所拥有的$node实际上是一个节点数组。如果你知道你只有一个要更新,你可以:

$node[0]['node_attribute'] = $new_attribute_value;

更合适的可能是:

$nodes = $xmlDoc->xpath("//nodename[@node_attribute='{$search_attribute_value}']");
foreach ($nodes as $node) {
    $node['node_attribute'] = $new_attribute_value;
}

所有内容都会按预期更新。

答案 1 :(得分:0)

未经测试,但您应该尝试这样。

$nodename->attributes()->node_attribute = $new_attribute_value;