2012-06-12 53 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