2016-04-29 2 views
0

J'ai essayé d'analyser un document XML (HMTL en fait, mais cela n'a pas d'importance) en Java avec org.jdom2.input.SAXBuilder.Echec de l'analyse avec SAX en raison du caractère '&' en HTML

Le document contient une ligne avec une URL:

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

Le problème est, il devrait avoir un point-virgule (;) après cela, si &pg devient un symbole, et SAXBuilder donne une erreur à cause de cela (pas de point-virgule après & pg trouvé).

Existe-t-il une option d'analyse pour que SAX n'interprète pas le caractère & comme un symbole, mais comme une chaîne normale?

La différence est, je ne veux pas Parse caractère spécial, je veux analyser les caractères &somethingcomme ils sont, il doit l'être par défaut en fait, et le principal problèmeest une exception lancé par la classe Java

org.jdom2.input.SAXBuilder 

Répondre

2

& est un caractère XML spécial. Vous auriez besoin d'échapper à & ampamp; ou l'enrouler autour de la balise CDATA [].

J'ai essayé d'analyser un document XML (HMTL en fait, mais cela ne la matière) en java

Peu importe! Si vous utilisez un éditeur XML pour valider la source HTML . Se plaint-il du même problème? Est-ce que le XML est bien formé? Gardez à l'esprit que de nombreuses sources HTML ne sont pas bien formées au format XML. Si vous voulez analyser HTML, je suggère d'utiliser l'analyseur HTML. J'ai utilisé JSoup (open source) api pour analyser HTML dans plusieurs de mes projets.

+0

oui, par exemple netbeans xml editor écris la même chose à propos de; pg. Est-ce JSout parce que quelque chose ressemble à Element, donc vous pouvez naviguer vers les éléments? –

+0

JSoup est un projet Apache, open-source. Son pour l'analyse HTML et navigue le DOM-aimé. Vous pouvez sélectionner différents nœuds, attributs et extraits de leurs données ... –