Je développe un programme Java qui lit le code HTML, analyse le code HTML, récupère le contenu (texte lisible par l'homme) et le stocke dans un fichier XML. Parfois, le code HTML contient '
, "
caractères (entre autres), mais parfois ils sont également écrits comme '
et "
respectivement.API XML Java convertit " en & quot;
Je compile le code XML en suivant la procédure appropriée. J'utilise les classes Document
et Element
, et je fais le fichier XML en utilisant les classes Transformer
, DomSource
et StreamResult
.
Le problème est que lorsque le fichier est enregistré, je vois que le symbole &
est remplacé par un &
. Je sais que c'est la bonne chose. Mais il convertit également '
en &&apos
!
J'ai également essayé de convertir l'objet Document
en objet String
, puis de passer cette chaîne à la méthode StringEscapeUtils.unescapeXml(String s)
, pour laisser les entités XML intactes. Toutefois, il ne convertit pas l'entité &
en &
, ce qui entraîne un fichier XML non valide.
(j'ai mis le OutputKeys.ENCODING
à "UTF-8" et le OutputKeys.METHOD
à "xml".)
Je suppose que vous êtes en train d'écrire une chaîne contenant les six caractères '& a p o s;' dans un noeud de texte dans un document DOM, de sorte que le noeud texte soit sérialisé en tant que '& a m p; un p o s; Le noeud de texte doit contenir du texte non échappé (c'est-à-dire, un seul caractère '' ') et le sérialiseur décidera s'il faut l'échapper ou non. –