2012-05-17 51 views
0

我這裏有一個網站,寫信息,以和XML文件,這裏是我的代碼:XML DOM的replaceChild

<?php 
$doc = new DOMDocument(); 
$doc->load("xml/latestContent.xml"); 
$rootElement = $doc->documentElement; 

// Create latestpic element as a child of the root element 
$latestPicElement = $rootElement->appendChild($doc->createElement("latestpic")); 
$latestPicElement->appendChild($doc->createElement("item", "Latest Pic")); 
$latestPicElement->appendChild($doc->createElement("content", $latestPic)); 

// Create latestvideo element as a child of the root element 
$latestVidElement = $rootElement->appendChild($doc->createElement("latestvideo")); 
$latestVidElement->appendChild($doc->createElement("item", "Latest Video")); 
$latestVidElement->appendChild($doc->createElement("content", $videoData)); 

// Create latestfact element as a child of the root element 
$latestFactElement = $rootElement->appendChild($doc->createElement("latestfact")); 
$latestFactElement->appendChild($doc->createElement("item", "Latest Fact")); 
$latestFactElement->appendChild($doc->createElement("content", $factData)); 

// Save back to XML file 
$doc->save("xml/latestContent.xml"); 
?> 

這裏的問題是我每次加載網頁時重新加載這一功能,只是增加了相同數據返回到XML文件,如果可以,我希望它取代原始數據?我如何去做這件事?我研究了replaceChild方法,但無法獲得正確的語法。任何人都可以請我看看?

或者有沒有一種方法可以在那裏加載一個空白的XML每次?所以它只是將內容添加到新的XML文件中?

非常感謝!

回答

1

如果你想使用replaceChild(),你需要一個指向你試圖替換的節點的指針。另一方面,如果想法是取代所有的數據,爲什麼要讀取現有的文件?

//$doc->load("xml/latestContent.xml"); not needed 
$rootElement = $dom->appendChild($doc->createElement("Root")); 

這個新文檔將覆蓋前一個。您可以獲得更多信息here

+0

感謝您的回覆!這將在哪裏創建XML文件,但在相同的位置? – DommyCastles

+0

它將在內存中,直到它到達$ doc-> save(「xml/latestContent.xml」);行。 – user845279

+0

完美的作品,非常感謝你! – DommyCastles