所以我有以下xml结构:
<Application>
<Properties>
<Property>
<Name>blabla</Name>
<Value>123</Value>
</Property>
</Properties>
</Application>
我希望用PHP添加另一个“Property”子项。 一个例子可能是:
<Application>
<Properties>
<Property>
<Name>blabla</Name>
<Value>123</Value>
<Name>example test</Name>
<Value>another value</Value>
</Property>
</Properties>
</Application>
这是我目前的PHP代码:
<?php
$xml = simplexml_load_file("Application.xml");
$sxe = new SimpleXMLElement($xml->asXML());
$properties = $sxe->addChild("Property");
$properties->addChild("Name", "namehere");
$properties->addChild("Value", "random value here");
$sxe->asXML("Application.xml");
?>
但它只是将它添加到xml的末尾。在</Application>
之后,这不是我们想要的。
我希望将其添加到<Property>
孩子中。
有人可以帮助我吗?
答案 0 :(得分:0)
您需要在<Application>
标记内遍历<Properties>
标记。
使用xpath()
。
$propNode = $sxe->xpath('/Application/Properties');
$property = $propNode[0]->addChild('Property');
答案 1 :(得分:0)
如果您想将您的孩子添加到特定元素,您必须这样说:
$properties = $sxe->Properties->addChild("Property");
^^^^^^^^^^
如果有多个Properties
元素并且您想要指定的不是第一个,则可以使用从零开始的数组索引,例如:第一个0
(默认),第二个1
:
$properties = $sxe->Properties[1]->addChild("Property");