当我尝试使用Java解析XML文件(在GAE服务器中)时,我有时会遇到以下错误:
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
任何帮助将不胜感激。谢谢。
更新
感谢您的回答。我将我的代码更改为另一个解析器,以及该文件正在正确解析的好消息。 它现在转移到另一个饲料相同的问题,尽管完全不同的饲料相同的线,它之前完美的工作。谁能想到为什么会这样?
答案 0 :(得分:5)
看起来它是一个真人文件;即一个经常变化的人。其中也没有<meta>
标记的迹象。
我可以想到发生了什么的两种解释:
有时文档生成或创建不正确。
有时您会收到HTML错误页面而不是您期望的文档,并且XML解析器无法处理HTML <meta>
中的<head>
标记。这是因为(有效)HTML中的<meta>
标记不需要匹配/关闭</meta>
标记。 (至少对于某些版本的HTML,不允许使用结束标记。)
要跟踪此情况,您将不得不捕获导致解析失败的精确输入。
答案 1 :(得分:4)
您可以尝试使用<meta/>
代替<meta>
。
答案 2 :(得分:1)
只需在每行带有meta的行后应用(/
)
<meta name=" " content=" " />
使用时,
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
确实有效
答案 3 :(得分:0)
它不是XML而是HTML:
&lt; !DOCTYPE html PUBLIC“ - // W3C // DTD HTML 4.01 // EN”“http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd”&gt;
XML解析器不会解析它。
我看到该文件没有任何内容,看起来不像有效的RSS文件。可能发生任何服务器端错误。
答案 4 :(得分:0)
您可以使用此标签
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />