2012-06-12 23 views
0

我有一个嵌套的xml文件,我想在某些节点下插入元素。 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> 

假设我要插入一些项目,作为项目ID 4的孩子,使用PHP将语法是找到第4项的节点,并在其中添加另一个项目节点什么?

+0

语法取决于你的代码。你的代码是什么?例如,您可以使用'substr_replace'作为示例,只需在其中插入一些文本,因为XML是文本。 – hakre

回答

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 
+0

这就是我想要的,谢谢:) – Firdous