2013-05-13 103 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>,我花了很多时间在上面,最后我发现答案就是这样!

相关问题