我有一个嵌套的xml文件,我想在某些节点下插入元素。 xml结构如下:
<root>
<item id="1">
<content><name>ITEM 1</name></content>
<item id="3">
<content><name>ITEM 3</name></content>
<item id="4">
<content><name>ITEM 4</name></content>
</item>
</item>
</item>
<item id="2">
<content><name>ITEM TWO</name></content>
</item>
</root>
假设我想将一些Item作为item id 4的子元素插入,使用php语法将找到第4项的节点并在其中附加另一个项目节点?
答案 0 :(得分:3)
首先使用simplexml
,然后使用xpath
搜索ID,然后添加子项:
$xml = '<root>
<item id="1">
<content><name>ITEM 1</name></content>
<item id="3">
<content><name>ITEM 3</name></content>
<item id="4">
<content><name>ITEM 4</name></content>
</item>
</item>
</item>
<item id="2">
<content><name>ITEM TWO</name></content>
</item>
</root>';
$xml = simplexml_load_string($xml); // load the XML
$id = $xml->xpath("//*[@id='4']"); // search for id=4
$item = $id[0]->addChild('item'); // add another item
$item->addAttribute('id', '5'); // add id=5
$content = $item->addChild('content', ''); // add content
$content->addChild('name', 'ITEM 5'); // add name
echo $xml->asXML(); // output