0

我正在尝试编写一个将更新 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();

我错过了什么?

4

2 回答 2

1

“我错过了什么?”

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

于 2012-06-20T14:05:07.600 回答
1

我让它工作了。我改变了这些行:

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

到这一行:

$items->item(0)->parentNode->insertBefore($newItem,$items->item(0));
于 2012-06-20T14:42:14.867 回答