无法在XML文件上插入

时间:2012-06-20 13:47:59

标签: php xml

我正在尝试编写一个更新RSS XML文件的脚本。我希望它获取现有文件并将新项添加到项列表的顶部。我之前已经将它添加到文件末尾,但现在它根本没有添加新项目。我一直在网上查看,但我仍然无法让它工作。以下是我到目前为止的情况:

$rssDoc = new DOMDocument();
$rss_file = $_SERVER['DOCUMENT_ROOT'].'/test_site/feed.xml';
$rssDoc->load($rss_file);
$items = $rssDoc->getElementsByTagName('item');

$newItem = $rssDoc->createElement('item');
$rssTitle = $rssDoc->createElement('title');
$rssTitle->appendChild($rssDoc->createTextNode($title));
$newItem->appendChild($rssTitle);

$rssDesc = $rssDoc->createElement('description');
$rssDesc->appendChild($rssDoc->createTextNode($string));
$newItem->appendChild($rssDesc);

$rssLink = $rssDoc->createElement('link');
$rssLink->appendChild($rssDoc->createTextNode($link));
$newItem->appendChild($rssLink);

$rssDate = $rssDoc->createElement('pubDate');
$rssDate->appendChild($rssDoc->createTextNode($pubDate));
$newItem->appendChild($rssDate);

$firstItem = $items->item(0);
$firstItem->insertBefore($newItem,$firstItem->firstChild);

$rssDoc->formatOutput = true;
echo $rssDoc->saveXML();

我错过了什么?

2 个答案:

答案 0 :(得分:1)

“我错过了什么?”

输出:$rssDoc->save( 'filename.xml' ) http://php.net/domdocument.save.php

答案 1 :(得分:1)

我得到了它的工作。我改变了这些路线:

$firstItem = $items->item(0);
$firstItem->insertBefore($newItem,$firstItem->firstChild);

到这一行:

$items->item(0)->parentNode->insertBefore($newItem,$items->item(0));