2013-05-13 10 views
6

Ich habe die folgende Fehlermeldung manchmal bekam, wenn ich versuche, eine XML-Datei mit Java (innerhalb GAE-Servers) zu analysieren:Der Elementtyp „META“ muss durch den entsprechenden End-Tag beendet werden „</META>“

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

Aber es passiert nicht die ganze Zeit, manchmal Es funktioniert gut. Das Programm analysiert XML-Dateien und ich habe kein Problem damit.

Dies ist die XML-Datei, die ich zu analysieren, ich versuche: http://www.fulhamchronicle.co.uk/london-chelsea-fc/rss.xml

Jede Hilfe geschätzt wird. Vielen Dank.


Update:

Danke für die Antwort. Ich änderte meinen Code in einen anderen Parser und die guten Nachrichten, die die Datei jetzt richtig analysiert. Das schade, dass es jetzt für ein anderes feed gleiches Problem verschoben hat, gleiche Zeile trotz komplett anderem Feeds und es funktionierte einwandfrei vorher. Kann jemand daran denken, warum es passiert?

+2

Sind Sie sicher, dass Ihre Datei die von Ihnen gepostete Datei ist? Es hat keine Meta-Knoten. Zeile 10 der von Ihnen geposteten Datei ist ebenfalls leer. – BackSlash

+0

Das Problem wird von Saxon verursacht, siehe http://ripary.com/xhtml2xhtml.html "Das neue Meta-Element erinnert Saxon daran, den Zeichensatz und die Codierung der Datei explizit anzugeben " – 8bitjunkie

Antwort

5

Das sieht aus wie es ein Live-Dokument ist; d.h. eine, die sich ziemlich häufig ändert. Es gibt auch kein Zeichen von einem <meta> Tag darin.

Ich denke an zwei Erklärungen können, was passiert: falsch

  • Manchmal ist das Dokument erzeugt oder erstellt wird.

  • Manchmal erhalten Sie anstelle des erwarteten Dokuments eine HTML-Fehlerseite, und der XML-Parser kann ein <meta>-Tag in den HTML-Codes <head> nicht verarbeiten. Das liegt daran, dass das <meta>-Tag in (gültigem) HTML kein passendes/schließendes </meta>-Tag haben muss. (Und zumindest für einige Versionen von HTML, ist es nicht erlaubt, einen End-Tag zu haben.)

diese nach unten zu verfolgen, werden Sie die genaue Eingabe haben, zu erfassen, die den Parsing verursacht scheitern .

0

Es ist nicht XML aber HTML:

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

Die XML! Parser wird es nicht analysieren.

Ich sehe die Datei hat keinen Inhalt und es sieht nicht wie gültige RSS-Datei aus. Möglicherweise tritt ein serverseitiger Fehler auf.

3

verwenden Sie einfach <meta/> anstelle von <meta>, verbrachte ich große Zeit darauf, am Ende finde ich, dass die Antwort war es!