Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用DOm和PHP将节点添加到现有XML文档中_Php_Xml_Dom_Xmlnode_Nsxmlelement - Fatal编程技术网

使用DOm和PHP将节点添加到现有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>

我希望有人能帮忙,因为这让我发疯

我需要使用PHP更新现有的XML文件。如果其中一个节点中的值等于某个值,那么我想添加一个新的子元素,其中包含一些文本

以下是XML文件的一个示例:

<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。我现在就试试这个。