簡體   English   中英

使用PHP DOMDocument()更新XML文件時出現問題;

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM