2015-06-05 47 views
0

我無法完成添加DOCTYPE到我的xml站點地圖。 W3C不斷顯示文檔類型未找到的錯誤(這是唯一的錯誤)。此外沒有錯誤,但每當我在文檔的頂部放置一些文檔類型時,在重新驗證之後會產生很多錯誤。可能因爲任何我能找到的文檔類型都是XHTML或HTML文檔類型,找不到XML文檔類型。任何人可以幫助我在這裏?從W3CXML文件中的文檔類型

錯誤:

沒有DOCTYPE找到了!僅檢查XML語法。

構建了XML文件的標題:

$header = '<'.'?'.'xml version="1.0" encoding="UTF-8"?'.'>'."\n"; 
$header .= "\t".'<urlset '; 
$header .= 'xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n"; 
return $header; 

XML網站地圖:

<?xml version="1.0" encoding="UTF-8"?> 
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
<url> 
    <loc>http://www.url.com/path</loc> 
    <priority>1.0</priority> 
    <changefreq>weekly</changefreq> 
    <lastmod>2015-06-05</lastmod> 
</url> 
</urlset> 

編輯:

截圖: enter image description here

+0

爲什麼你有DOCTYPE註釋掉,什麼都HTML元素在裏面做什麼? –

+0

您的站點地圖中有兩個語法錯誤:'',並且XML聲明需要如下所示:'<?xml version =「1.0」encoding =「UTF-8」?>' –

+0

@AndrewMorton是我的不好之處,我複製了chrome檢查器中的代碼,它註釋了doctype。在實際的來源中沒有評論,所以我會改變它。 –

回答

0

得到它完成。我添加了一個內聯DTD爲DOCTYPE這解決了這一問題:

<!DOCTYPE urlset [ 
<!ELEMENT urlset (url)+> 
<!ELEMENT url (loc, priority, changefreq, lastmod)> 
<!ELEMENT loc (#PCDATA)> 
<!ELEMENT priority (#PCDATA)> 
<!ELEMENT changefreq (#PCDATA)> 
<!ELEMENT lastmod (#PCDATA)> 
<!ATTLIST urlset xmlns CDATA #REQUIRED>