2016-04-29 13 views
0

Ich habe versucht, ein XML-Dokument (HMTL tatsächlich, aber das spielt keine Rolle) in Java mit org.jdom2.input.SAXBuilder zu analysieren.Parsing mit SAX schlägt fehl wegen '&' in HTML

Das Dokument enthält eine Zeile mit einer URL:

< link rel ="something" href="http://...&pg=2..." />; 

Das Problem ist, wird erwartet, ein Semikolon zu haben (;) danach, so werden &pg einige Symbole, und SAXBuilder gibt einen Fehler, da die das (kein Semikolon nach & pg gefunden).

Gibt es eine Parsing-Option, damit SAX das Zeichen & nicht als Symbol, sondern wie eine normale Zeichenfolge interpretiert?

Der Unterschied ist, ich will nicht zu speziellen analysieren Charakter, ich will Zeichen analysieren &somethingwie sie sind, muss es tatsächlich so standardmäßig sein, und die Haupt Problem ist eine Ausnahme geworfen von Java-Klasse

org.jdom2.input.SAXBuilder 

Antwort

2

& ist ein spezielles XML-Zeichen. Du müsstest es zu & amp; amp; oder umschließen Sie das CDATA [] -Tag.

Ich habe versucht, ein XML-Dokument (HMTL tatsächlich, aber das bedeutet nicht Materie) zu analysieren, in java

Es ist von Bedeutung! Wenn Sie einen XML-Editor verwenden, um die HTML-Quelle zu validieren. Beklagt es das gleiche Problem? Ist XML wohlgeformt?

Beachten Sie, dass viele HTML-Quellen nicht XML-formatiert sind. Wenn Sie HTML analysieren möchten, würde ich vorschlagen, HTML-Parser zu verwenden. Ich benutzte JSoup (Open Source) API, um HTML in vielen meiner Projekte zu analysieren.

+0

ja, zum Beispiel Netbeans Xml Editor schreiben Sie dasselbe über; pg. ist diese JSout parce zu etwas jdom Element-ähnlich, so dass Sie zu Elementen navigieren könnten? –

+0

JSoup ist ein Apache-Projekt, Open-Source. Es ist für das Parsen von HTML und navigiert das DOM-liked. Sie können verschiedene Knoten, Attribute auswählen und ihre Daten extrahieren ... –