我有一个xml文档,其结构如下:
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<id>1</id>
<url>www.test.com</url>
</item>
<item>
<id>2</id>
<url>www.test2.com</url>
</item>
</items>
我希望能够搜索节点值,例如id字段的值为1。然后,一旦找到该节点,选择父节点,该节点将是&lt; item&gt;并在其中插入一个新的孩子。
我知道使用dom文档的概念,但不知道如何在这个实例中这样做。
答案 0 :(得分:4)
这应该是一个开始:
$dom = new DOMDocument;
$dom->loadXML($input);
$ids = $dom->getElementsByTagName('id');
foreach ($ids as $id) {
if ($id->nodeValue == '1') {
$child = $dom->createElement('tagname');
$child->appendChild($dom->createTextNode('some text'));
$id->parentNode->appendChild($child);
}
}
$xml = $dom->saveXML();
或接近它的东西。
答案 1 :(得分:2)
你可以用更简单的方式做同样的事情。您可以反转关系并查找具有值为{{1}的<id/>
子节点的任何节点,而不是查找值为1
的{{1}}节点,然后选择其父节点。 }。
您可以在XPath中轻松完成此操作,以下是如何在SimpleXML中执行此操作:
<id/>