[英]Problem in updating an XML file using PHP DOMDocument();
我試圖編寫一個功能來更新網站的站點地圖,或者從技術上說,將一項添加到sitemap.xml文件中。 可以在此處查看Google網站地圖的標准結構: http : //www.sitemappro.com/google-sitemap.html
以下是該函數的代碼:
function AddEntry($loc,$lastmod,$changefreq,$priority){
$xmlDoc = new DOMDocument();
$xmlDoc->load("sitemap.xml");
$url []=array('loc' => $loc, 'lastmod' => $lastmod, 'changefreq'=> $changefreq, 'priority' =>$priority );
$r=$xmlDoc->createElement("url");
$xmlDoc->appendChild($r);
foreach($url as $key=>$value)
{
$r->appendChild($xmlDoc->createElement($key))->appendChild($xmlDoc->createTextNode($value));
}
$xmlDoc->save();
}
上面的代碼不起作用,並給出此錯誤:
“致命錯誤:在消息中存在未捕獲的異常'DOMException'和消息'無效字符錯誤'。”
您能幫我更正我的代碼嗎? 提前致謝。
正如評論中指出的那樣,問題應該在這一行中
$r->appendChild($xmlDoc->createElement($key))->appendChild($xmlDoc->createTextNode($value));
您很可能會在XML中添加一些url字符。 問題是您必須轉義它們或將$value
包含在CDATA節中。 否則,生成的XML將是無效的,並且xml庫將引發此類異常。
PS我不記得htmlentities函數是否對xml也有用,我想是這樣,但是您需要對此進行調查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.