2009-09-28 100 views
0
XML Parsing Error: no element found 
Location: http://localhost/rss/ 
Line Number 1, Column 1: 

然而,當我將XML粘貼到http://validator.w3.org/feed/check.cgi,它說沒有格式錯誤。RSS訂閱XML錯誤 - 任何錯誤?

完整的代碼以低於:

的index.php

<?php 
    header("Content-Type: application/xml; charset=ISO-8859-1"); 


$details = '<?xml version="1.0" encoding="ISO-8859-1" ?> 
      <rss version="2.0"> 
       <channel> 
          <title>hehe</title> 
          <link>http://www.google.com</link> 
          <description>gaga</description> 
       </channel> 
      </rss> 
      '; 
echo $details; 

?> 

回答

0

確保您的PHP文件開始時沒有雜亂的BOM。當保存爲UTF-8格式時,Windows上的一些(愚蠢,破損的)編輯器會將UTF-8編碼的材料清單放到文件的開頭。這是毫無意義的(因爲UTF-8沒有字節順序問題)並且不合需要(因爲它會破壞與面向字節處理工具的兼容性)。

由於您將輸出作爲ISO-8859-1提供,因此任何UTF-8編碼的BOM在開始時都會變爲8859-1序列。對於XML,這將是根元素之外的非空白字符數據,這是不允許的。

如果這是發生了什麼事,通過保存您的PHP文件作爲「西方」(CP1252)編碼解決它,或者尋找一個「UTF-8無BOM」編碼救下。

0

誰報告瞭解析錯誤?我把代碼放在我的機器上,它按預期工作。 Firefox要求訂閱訂閱源。

+0

我在我的localhost pc,firefox中運行它...但它出來錯誤。 – 2009-09-28 10:09:39

0

您必須非常小心,以確保在XML聲明之前沒有換行符或空格。即使是單行換行也會導致問題。