如何使用路径查找某些内容并添加一个新元素?

时间:2017-11-27 14:12:49

标签: php xml dom xpath

我有一个PHP脚本,可以在XML文件中找到某些单词。如果在文件末尾找到某个单词,我想添加一个新的XML元素。但是在我的代码中,每次找到它时都会添加一个。

我做错了什么?

XML:

<products>
 <product>
    <title>TestProduct</title>
    <Specifications>
      <item name="Specifications1">Test</item>
      <item name="Specifications2">Hello World</item>
    </Specifications>
    <body>
      <item name="Color">Black</item>
    </body>
 </product>
</products>

PHP:

$dom = new DOMDocument;
$dom->load('Test.xml');
$xpath = new DOMXPath($dom);
foreach ($xpath->query("//*[contains(., 'Black')]") as $item) {
    $element = $dom->createElement('ID', '123');
    $item->appendChild($element);
}

echo $dom->saveXML();

应该是这样的:

<products>
 <product>
    <title>TestProduct</title>
    <Specifications>
      <item name="Specifications1">Test</item>
      <item name="Specifications2">Hello World</item>
    </Specifications>
    <body>
      <item name="Color">Black</item>
    </body>
    <ID>123</ID>
 </product>
</products>

0 个答案:

没有答案