2015-06-01 173 views
0

我想弄清楚如何讓xml節點在頂部插入(insertBefore),而不是之後。例如:image1,image2,image3。在頂部插入XML節點

<data> 
    <image src="image3" /> <-- Notice 
    <image src="image2" /> <-- Notice 
    <image src="image1" /> 
    </data>   



    $dom = new DOMDocument(); 
    $dom->formatOutput = true; 

    $dom->load('myfile.xml'); 

    $root = $dom->documentElement; 
    $newresult = $root->appendChild($dom->createElement('image')); 

    $newresult->setAttribute('id', '10'); 
    $newresult->setAttribute('src', pic.jpg'); 
    $newresult->setAttribute('desc', 'Timothy'); 

    //echo ''. $dom->saveXML() .''; 
    $dom->save('myfile.xml') or die('XML Manipulate Error'); 

謝謝!我將不勝感激任何幫助,你可以給我!

回答

2

而不是appendChild(),你想要使用insertBefore()

更換

$newresult = $root->appendChild($dom->createElement('image')); 

隨着

$newresult = $root->insertBefore($dom->createElement('image'), $root->firstChild); 

更改後的代碼表示,data元素的第一個孩子前插入新image元素。即使data元素沒有子元素,這仍然有效。

Here's a quick demo

+0

完美!我越來越近了!非常感謝! –