程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 浏覽器輸出xml文件 錯誤error on line 4 at column 56: EntityRef: expect

浏覽器輸出xml文件 錯誤error on line 4 at column 56: EntityRef: expect

編輯:PHP綜合

  PHP寫的一個API,輸出XML格式的東西。

  現在直接顯示在浏覽器裡報這個錯誤:

  error on line 4 at column 56: EntityRef: expecting ';'

  查看頁面的源代碼,這一行是:

  <loc>http://www.xxx.com/index.php?id=5383&utm_source=57tuan</loc>

  這是怎麼回事?該咋解決?

  答案:

  &符號,改成&,或者直接用cdata區(<![CDATA[ ]]>)

  Firefox浏覽器、谷歌Chrome浏覽器以及大多數浏覽器在顯示xml文件時,顯示的並不是文件源碼,而是經過“xml解析器”解析後的結果。但是,“xml解析器”在遇到字符“&”時,會把“&”當做一個實體引用的開始,而去尋找這個實體引用的結束符號“;”,本文上面遇到的就是這個問題。

  在xml文檔中,像“&”這樣的預定義的實體引用一共有5個,分別是“&”、“<”、“>”、“'”、“"”。

  解決方法一:

  把實體引用編碼後使用,即

  把“&” 編碼為 “&”

  把“<” 編碼為“<”

  把“>” 編碼為 “>”

  把“'” 編碼為 “'”

  把“"” 編碼為 “"”

  解決方法二:

  在標記CDATA中,所有的標記、實體引用都被忽略,而被“xml解析器”一視同仁地當做原始字符數據看待,CDATA的形式如下:<![CDATA[文本內容]]>

  使用CDATA需要注意的兩點,

  一:由於CDATA的結束符號是“]]>”,所以CDATA中不能包含“]]>”,

  二:由於CDATA中的所有標記、實體引用都被忽略,所以CDATA不能嵌套使用。

*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved