我正在尝试更新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}}中查找和更新属性值?
答案 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;