2013-05-13 364 views
6

我已經得到了下面的錯誤,有時,當我嘗試解析與Java XML文件(內GAE服務器):元素類型「元」必須由匹配的結束標籤終止「</META>」

Parse: org.xml.sax.SAXParseException; lineNumber: 10; columnNumber: 3; The element type "META" must be terminated by the matching end-tag "</META>". 

然而,它並不是一直在發生,有時它是行得通的。該程序解析XML文件,我沒有與他們的問題。

這是我試圖解析XML文件: http://www.fulhamchronicle.co.uk/london-chelsea-fc/rss.xml

任何幫助將不勝感激。謝謝。


更新:

感謝您的回答。我將我的代碼更改爲不同的分析器,並且文件現在正確解析的好消息。 糟糕的是,它現在移動到另一個飼料相同的問題,儘管完全不同的飼料,它行之前完美的同一行。任何人都可以想到它爲什麼會發生?

+2

您確定自己的文件是您發佈的文件嗎?它沒有'meta'節點。您發佈的文件的第10行也爲空 – BackSlash 2013-05-13 15:57:48

+0

此問題由Saxon引起,請參閱http://ripary.com/xhtml2xhtml.html「新元元素是Saxon提醒我們明確聲明文件的字符集和編碼的方式「 – 8bitjunkie 2015-11-04 17:08:54

回答

5

看起來它是一個活文件;即相當頻繁改變的一個。其中也沒有標記<meta>標記。

我能想到的兩種解釋正在發生的一切:

  • 有時,正在產生或不正確地創建文檔。

  • 有時,您正在獲取HTML錯誤頁面而不是您期望的文檔,XML解析器無法應對HTML <head>中的<meta>標記。這是因爲(有效)HTML中的<meta>標記不需要具有匹配/關閉</meta>標記。 (以及HTML的至少某些版本中,不允許關閉標籤。)

要跟蹤下來,你將不得不以捕獲導致解析失敗的精確輸入。

0

它不是XML,但HTML:

< DOCTYPE HTML PUBLIC 「 - // W3C // DTD HTML 4.01 // EN」 「http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd」>

的XML!解析器不會解析它。

我看到該文件沒有任何內容,看起來也不像有效的RSS文件。可能會發生任何服務器端錯誤。

3

只是用<meta/>而不是<meta>,我花了很多時間在上面,最後我發現答案就是這樣!

相關問題