2015-06-01 6 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); 

Измененный код говорит, чтобы вставить новый элемент image перед первого ребенка из data элемента. Это все еще работает, даже если элемент data не имеет дочерних элементов.

Here's a quick demo.

+0

Отлично! Я так близко подошел! Спасибо огромное! –

Смежные вопросы