2011-10-05 5 views
0

XML 파일을 저장하는 CubeGallery3D를 사용하여 본인.XML 파일에 데이터 추가

XML 구조는 다음과 같습니다 http://pastebin.com/peMxcmYb

내가 추가하고 싶은 : PHP와 XML 파일에

<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> 

.

나는이 함께 시작했습니다 :

$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

자바 스크립트 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로 하나 개의 루트 엘이 있어야합니다 달성. –

+0

네 -'$ xmlDoc-> firstChild->'비트를 추가하도록 업데이트했습니다; 컨테이너가없는 요소의로드를 그냥 뿜어내는 "실제가 아닌"XML 문서가 많이 있습니다. – CD001

관련 문제