2011-10-05 118 views
0

使用CubeGallery3D的Im使用XML文件存儲。將數據附加到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>元素,並像上面的例子那樣向它添加參數+值嗎?

回答

2

試試這個:

<?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'); 
+0

嘿!這工作差不多! <標題和說明結果爲>,而整個元素在之外,所以它是:元素在這裏請參閱http://pastebin.com/XzaRGsX4 – Karem

+0

謝謝..請參閱此http:// stackoverflow.com/questions/7666473/prepending-data-to-xml-file – Karem

0

幾乎是相同的JavaScript DOM操作 - 它應該是這樣的......

$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);

+0

不知道,這將工作 - 如XML應該只有一個根埃爾EMENT。 –

+0

是的 - 更新它添加在'$ xmlDoc-> firstChild->'位;儘管我已經看到很多「不真實」的XML文檔,它們只是在沒有容器的情況下提取一大堆元素。 – CD001