我正在尝试编写一个更新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();
我错过了什么?
答案 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));