2013-09-12 5 views
1

Если хотите XML, чтобы сделать это:PHP DOMDocument добавление ребенка XML Feed

<itunes:owner> 
     <itunes:name>Name</itunes:name> 
     <itunes:email>email</itunes:email> 
    </itunes:owner> 

Этот код не работает. name и email не находится между owner тегами.

вместо этого он делает это:

<itunes:owner> </itunes:owner> 
    <itunes:name>Name</itunes:name> 
    <itunes:email>email</itunes:email> 

Этот PHP код не работает. name и email не находится между owner тегами.

$xml = new DOMDocument("1.0","UTF-8"); 
... 
    $chan->appendChild($xml->createElement('itunes:owner', 'ame')); 
    $chanow = $chan->appendChild($xml->createElement('itunes:name', 'Name')); 
    $chanow = $chan->appendChild($xml->createElement('itunes:email', 'email')); 

Как можно добавить дочерний элемент?

Извините, это мой первый опыт работы с DOMDocument.

ответ

0

Вы пытаетесь добавить ребенка к неправильному родителю.

$chan->appendChild($xml->createElement('itunes:owner', 'ame')); 

Попробуйте это:

$xml->formatOutput = true; //better readability 

$chan = $xml->appendChild($xml->createElement('itunes:owner')); 
$chanow = $chan->appendChild($xml->createElement('itunes:name', 'Name')); 
$chanow = $chan->appendChild($xml->createElement('itunes:email', 'email')); 

echo $xml->saveXML(); //displaying the output 

Это должно обеспечить следующий вывод:

<itunes:owner> 
    <itunes:name>Name</itunes:name> 
    <itunes:email>email</itunes:email> 
</itunes:owner> 

Demo!

+0

спасибо! В моем случае мне нужно было перейти на: $ chan = $ chan-> вместо $ chan = $ xml ... потому что я хотел, чтобы он вышел из тега канала. Но у вас не было контекста. Очень полезно! – user2533570

+0

@ user2533570: Рад помочь! :) –

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