這是我的代碼加載一個現有的XML文件或字符串轉換成DOMDocument對象:PHP 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做簡單的任務(一個類或庫),如這一個,然後不要讓我知道。
但是,如果這些字符串中存在非xml安全字符,會不會失敗?我認爲這就是爲什麼OP使用'createTextNode()'。 – doub1ejack 2015-03-24 20:16:27