Добавление данных в файл XML

Im использует CubeGallery3D, который хранит файлы XML.

Структура XML выглядит следующим образом: http://pastebin.com/peMxcmYb

Я хотел бы добавить:

<thumbnail preview="This is Preview" previewURL="This is URL" thumb="This is Thumb"> <title><![CDATA[This is Title]]></title> <discription><![CDATA[This is Description]]></discription> </thumbnail> 

В XML-файл с PHP.

Я начал с этого:

 $xmldoc = new DOMDocument(); $xmldoc->load('/theme1157/sample.xml'); 

для загрузки sample.xml.

Может ли кто-нибудь показать мне, как я могу создать элемент <thumbnail> в файле и добавить к нему значения параметра +, как в приведенном выше примере?

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

 <?php $xmldoc = new DOMDocument(); $xmldoc->load('sample.xml'); $thumbnail = $xmldoc->createElement('thumbnail'); $thumbnail->setAttribute('preview', 'This is a preview'); $thumbnail->setAttribute('previewURL', 'This is a URL'); $thumbnail->setAttribute('thumb', 'This is a Thumb'); $title = $xmldoc->createElement('title'); $title->appendChild($xmldoc->createCDATASection('This is Title')); $thumbnail->appendChild($title); $description = $xmldoc->createElement('description'); $description->appendChild($xmldoc->createCDATASection('This is Description')); $thumbnail->appendChild($description); $xmldoc->getElementsByTagName('thumbnails')->item(0)->appendChild($thumbnail); $xmldoc->save('sample.xml'); 

Практически так же, как манипуляция DOM в JavaScript – это должно быть что-то вроде …

 $xmlThumbnail = $xmlDoc->createElement('thumbnail'); $xmlTitle = $xmlDoc->createElement('title'); $xmlDescription = $xmlDoc->createElement('discription'); $xmlThumbnail->setAttribute('preview', $sPreview); $xmlThumbnail->setAttribute('previewurl', $sPreviewURL); //technically in XML attributes must be in lowercase $xmlThumbnail->setAttribute('thumb', $sThumbnail); //presumably a path? $xmlThumbnail->appendChild($xmlTitle); $xmlThumbnail->appendChild($xmlDescription); $xmlDoc->appendChild($xmlThumbnail); $xmlDoc->save('/theme1157/sample.xml'); 

Хотя $xmlDoc->appendChild() , вероятно, потребуется изменить, если это «реальный» XML-документ, так как должен существовать контейнерный элемент, поэтому он может быть чем-то вроде $xmlDoc->firstChild->appendChild($xmlThumbnail);