元素类型“META”必须由匹配的结束标记“”终止

时间:2013-05-13 15:54:56

标签: java xml google-app-engine saxparser

当我尝试使用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

任何帮助将不胜感激。谢谢。


更新

感谢您的回答。我将我的代码更改为另一个解析器,以及该文件正在正确解析的好消息。 它现在转移到另一个饲料相同的问题,尽管完全不同的饲料相同的线,它之前完美的工作。谁能想到为什么会这样?

5 个答案:

答案 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" />