2013-05-13 16 views
6

Ho il seguente errore a volte quando sto cerco di analizzare un file XML con Java (all'interno del server GAE):Il tipo di elemento "meta" deve terminare con il tag di fine corrispondente "</META>"

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

Eppure non sta succedendo tutto il tempo, a volte funziona tutto bene. Il programma analizza i file xml e non ho alcun problema con loro.

Questo è il file XML che sto cercando di analizzare: http://www.fulhamchronicle.co.uk/london-chelsea-fc/rss.xml

Qualsiasi aiuto sarà apprezzato. Grazie.


Aggiornamento:

Grazie per la risposta. Ho cambiato il mio codice con un parser diverso e le buone notizie che il file ora sta analizzando correttamente. Il male si è spostato per un altro problema con lo stesso problema, la stessa linea nonostante il feed completamente diverso e ha funzionato perfettamente prima. Qualcuno potrebbe pensare al motivo per cui sta accadendo?

+2

Sei sicuro che il tuo file è quello che hai postato? Non ha nodi 'meta'. La riga 10 del file che hai postato è anch'essa vuota – BackSlash

+0

Il problema è causato da Saxon, vedi http://ripary.com/xhtml2xhtml.html "Il nuovo meta-elemento è il modo in cui Saxon ci ricorda di specificare in modo esplicito il set di caratteri e la codifica del file " – 8bitjunkie

risposta

5

Sembra che sia un documento dal vivo; cioè uno che cambia abbastanza frequentemente. Non è inoltre presente alcun segno di un tag <meta>.

Mi vengono in mente due spiegazioni per ciò che sta accadendo:

  • A volte il documento viene generato o creato in modo non corretto.

  • A volte si riceve una pagina di errore HTML anziché il documento che si aspetta e il parser XML non può far fronte a un tag <meta> nel codice HTML <head>. Questo perché il tag <meta> in HTML (valido) non ha bisogno di avere un tag corrispondente </meta>. (E per almeno alcune versioni di HTML, non è permesso di avere un tag di chiusura.)

Per tenere traccia di questo in giù, si sta andando ad avere per catturare l'input preciso che causa il parse a fallire .

0

Non è XML, ma HTML:

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

L'XML! il parser non lo analizzerà.

Vedo che il file non ha alcun contenuto e non sembra un file RSS valido. Potrebbe verificarsi un errore sul lato server.

3

basta usare <meta/> invece di <meta>, ho trascorso molto tempo su di esso, alla fine, trovo che la risposta è stata!

Problemi correlati