在顶部插入XML节点


Inserting a XML node at top

我想弄清楚如何让xml节点插入(insertBefore)在顶部,而不是之后。例如:image1, image2, image3.

   <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');

谢谢!我将非常感谢你能给我的任何帮助!

不要使用appendChild(),而要使用insertBefore()

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

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

修改后的代码说要在data元素的第一个子之前插入新的image元素。即使data元素没有子元素,这仍然有效。