XML DOM replaceChild

时间:2012-05-17 23:42:17

标签: xml dom

我这里有一个将信息写入XML文件的网站,这是我的代码:

<?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 个答案:

答案 0 :(得分:1)

如果要使用replaceChild(),则需要指向要替换的节点的指针。另一方面,如果想要替换所有数据,为什么要读取现有文件?

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

这个新文件将覆盖前一个文件。您可以获得更多信息here