Я пытаюсь написать сценарий, который будет обновлять XML-файл RSS. Я хочу, чтобы он взял существующий файл и добавил новый элемент в верхнюю часть списка элементов. Ранее я получил его, чтобы добавить в конец файла, но теперь он не добавляет новый элемент вообще. Я проверяю онлайн, но я все еще не могу заставить его работать. Вот что я имею до сих пор:
$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();
Что мне не хватает?
«Что мне не хватает?»
Результат: $rssDoc->save( 'filename.xml' )
http://php.net/domdocument.save.php
Я заработал. Я изменил эти строки:
$firstItem = $items->item(0); $firstItem->insertBefore($newItem,$firstItem->firstChild);
К этой строке:
$items->item(0)->parentNode->insertBefore($newItem,$items->item(0));