在顶部插入XML节点

时间:2015-06-01 18:36:48

标签: php xml

我试图找出如何让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');

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

1 个答案:

答案 0 :(得分:2)

而不是 appendChild(),而不是 insertBefore()

&#xA;&#xA;

替换

&#xA;&#xA;
  $ newresult = $ root-&gt; appendChild($ dom-&gt; createElement('image'));&#xA; < / code> 
&#xA;&#xA;

使用

&#xA;&#xA;
  $ newresult = $ root- &gt; insertBefore($ dom-&gt; createElement('image'),$ root-&gt; firstChild);&#xA;  
&#xA;&#xA;

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

&#xA;&#xA;

这是一个快速演示

&#xA;