Вопрос PHP DOMDocument: как заменить текст узла?

Это мой код, который загружает существующий XML-файл или строку в объект DOMDocument:

$doc = new DOMDocument(); $doc->formatOutput = true; if(is_file($filePath)) { $doc->load($filePath); } else { $doc->loadXML('<rss version="2.0"><channel><title></title><description></description><link></link></channel></rss>'); } $doc->getElementsByTagName("title")->item(0)->appendChild($doc->createTextNode($titleText)); $doc->getElementsByTagName("description")->item(0)->appendChild($doc->createTextNode($descriptionText)); $doc->getElementsByTagName("link")->item(0)->appendChild($doc->createTextNode($linkText)); 

Мне нужно перезаписать значение внутри тегов заголовка, описания и ссылки. Последние три строки в приведенном выше коде являются моей попыткой сделать это; но кажется, что как только файл будет создан, текст будет «добавлен» к существующему. Как я могу удалить текстовое содержимое узла (предположим DOMNode) и добавить новый текст в одну строку.

РЕДАКТИРОВАТЬ

PS: Если есть встроенный альтернативный (класс или библиотека), который требует меньше LOC для выполнения простых задач, таких как этот, тогда дайте мне знать.

DOMNode::$nodeValue установите DOMNode::$nodeValue :

 $doc->getElementsByTagName("title")->item(0)->nodeValue = $titleText; $doc->getElementsByTagName("description")->item(0)->nodeValue = $descriptionText; $doc->getElementsByTagName("link")->item(0)->nodeValue = $linkText; 

Это перезаписывает существующий контент с новым значением.

как упоминалось в двух словах

$doc->getElementsByTagName("title")->item(0)->nodeValue = $titleText;

выдаст ошибку, если $titleText = "& is not allowed in Node::nodeValue";

Поэтому лучшим решением будет

// clear the existing text content $doc->getElementsByTagName("title")->item(0)->nodeValue = "";

// then create new TextNode $doc->getElementsByTagName("title")->item(0)->appendChild($doc->createTextNode($titleText));