2011-10-05 91 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