2013-05-13 1 views
6

Я получил следующее сообщение об ошибке иногда, когда я пытаюсь разобрать XML-файл с Java (в пределах сервера GAE):элемента типа «META» должен быть обозначаться соответствующим конечным тегом «</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

Любая помощь будет оценена. Благодарю.


Update:

Спасибо за ответ. Я изменил свой код на другой синтаксический анализатор и хорошие новости, которые теперь обрабатывает файл правильно. Плохо, что теперь он перешел на другую проблему с одной и той же проблемой, в той же строке, несмотря на совершенно другую подачу, и она отлично работала раньше. Может ли кто-нибудь подумать, почему это происходит?

+2

Вы уверены, что ваш файл - тот, который вы опубликовали? Он не имеет узлов 'meta'. Строка 10 файла, который вы опубликовали, также пуста – BackSlash

+0

Проблема вызвана Saxon, см. Http://ripary.com/xhtml2xhtml.html «Новый мета-элемент - это способ Саксона напоминать нам о явном заявлении набора символов и кодировки файла " – 8bitjunkie

ответ

5

Это похоже на живой документ; то есть тот, который изменяется довольно часто. Также нет знака тега <meta>.

я могу думать о двух объяснений того, что происходит:

  • Иногда документ генерируется или создается неправильно.

  • Иногда вы получаете страницу с ошибкой HTML, а не документ, который вы ожидаете, и синтаксический анализатор XML не может справиться с тегом <meta> в <head> HTML. Это связано с тем, что тег <meta> в (действительном) HTML не должен иметь соответствующий/закрывающий тег </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>, я потратил много времени на это, в конце концов, я нашел, что ответ был так!