我试图找出如何让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');
谢谢!我非常感谢你能给我的任何帮助!
答案 0 :(得分:2)
而不是 appendChild()
,而不是 insertBefore()
。
替换
&#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
元素没有子元素,这仍然有效。