使用DOm和PHP将节点添加到现有XML文档中
我希望有人能帮忙,因为这让我发疯 我需要使用PHP更新现有的XML文件。如果其中一个节点中的值等于某个值,那么我想添加一个新的子元素,其中包含一些文本 以下是XML文件的一个示例:使用DOm和PHP将节点添加到现有XML文档中,php,xml,dom,xmlnode,nsxmlelement,Php,Xml,Dom,Xmlnode,Nsxmlelement,我希望有人能帮忙,因为这让我发疯 我需要使用PHP更新现有的XML文件。如果其中一个节点中的值等于某个值,那么我想添加一个新的子元素,其中包含一些文本 以下是XML文件的一个示例: <properties> <property> <address> <street>Example Road</street> <locality>Fitzrovia</locality>
<properties>
<property>
<address>
<street>Example Road</street>
<locality>Fitzrovia</locality>
<town>London</town>
<postcode>NW1</postcode>
</address>
</property>
<property>
<address>
<street>Default Street</street>
<locality>Sample</locality>
<town>London</town>
<postcode>EC1</postcode>
</address>
</property>
</properties>
我想做的是,如果邮政编码等于一个特定的值,那么一个新的子节点将添加到带有一些文本的“地址”节点
我遇到了一些问题,我可以得到一个新的子节点来生成,但它会添加很多子节点,并且只在XML文件的一部分中添加所有子节点,而不是在每个“属性”节点中添加一个isntance
我希望这是有意义的,因为我真的可以做一些帮助
提前感谢:)您应该使用创建新节点并附加新节点
例如:
if (preg_match('/^nw(?=[0-9]*)/i', $r)) {
$element = $dom->createElement('your_node_name', 'North West London');
$region->parentNode->appendChild($element);
}
应使用创建新节点和附加新节点
例如:
if (preg_match('/^nw(?=[0-9]*)/i', $r)) {
$element = $dom->createElement('your_node_name', 'North West London');
$region->parentNode->appendChild($element);
}
谢谢你的回复@akkie。我一直在尝试,但结果总是出错。最后,所有新节点都在XML文件中分组在一起,而不是每个节点都附加在“properties/property/address”节点上。我在回答中添加了一个例子。谢谢@akkie。我现在就试试这个。谢谢你的回复@akkie。我一直在尝试,但结果总是出错。最后,所有新节点都在XML文件中分组在一起,而不是每个节点都附加在“properties/property/address”节点上。我在回答中添加了一个例子。谢谢@akkie。我现在就试试这个。