J'ai un fichier au format XML (composé uniquement de balises de début et de fin de la racine, et des enfants de la racine). Les éléments de texte des enfants contiennent le symbole de l'esperluette &. En XML, ce symbole n'est pas autorisé pour que le document soit valide, et lorsque j'ai essayé de traiter le fichier en utilisant l'API DOM en Java et un analyseur XML, j'ai obtenu des erreurs d'analyse. J'ai donc remplacé le symbole & par &
et j'ai traité le fichier avec succès : Je devais extraire les valeurs des éléments de texte dans différents fichiers de texte brut.
Quand j'ai ouvert ces fichiers textes nouvellement créés, je m'attendais à voir &
mais il y avait & à la place. Comment cela se fait-il ? J'ai stocké le texte dans des fichiers texte sans aucune extension (mon fichier original au format XML n'avait pas non plus d'extension .xml), et je n'ai que & dans le texte du nouveau fichier, quelle que soit la façon dont j'ouvre le fichier : en tant que txt ou en tant que fichier xml (ce sont quelques-unes des options de mon éditeur XML). Que se passe-t-il exactement ? Est-ce que Java ( ?) convertit &
à & automatiquement ? Ou existe-t-il un encodage par défaut ? Bien, &
signifie &, et je suppose qu'il y a une conversion automatique "invisible", mais je ne sais pas quand et comment cela se produit. Voici des exemples de mon fichier original et du fichier extrait que je reçois après avoir traité le fichier original avec Java :
Voici mon fichier "negative.review" au format XML :
<review>
<review_text>
I will not wear it as it is too big & looks funny on me.
</review_text>
</review>
Voici mon fichier extrait "negative_1" :
I will not wear it as it is too big & looks funny on me.
Pour moi, il est important d'avoir les données originales telles quelles (sans faire de conversions/remplacements), donc j'ai pensé que je devais traiter le fichier extrait "negative_1" en le convertissant en retour. &
à &. Comme vous le voyez, il semble que je n'aie pas à le faire. Mais je ne comprends pas pourquoi :(.
Merci d'avance !