Bonjour,

Je cherche à modifier un fichier xml par le DOM tel que le suivant :

<?xml version="1.0" encoding="UTF-8"?>
<servinfo>
<title>Description</title>
<ptxt>Pas d'information pour cette fonction &#xe0; v&#xe9;rifier.</ptxt>
</servinfo>
Pour ce faire, j'utilise l'API DOM pour générer un arbre DOM à partir du fichier, modifier cet arbre, puis recharger à partir de l'arbre le fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
DocumentBuilderFactory fabrique = (DocumentBuilderFactory) DfDocumentBuilderFactory.newInstance();
fabrique.setExpandEntityReferences(false);
DocumentBuilder constructeur = fabrique.newDocumentBuilder();
FileInputStream fileReader = new FileInputStream(filePath);
InputSource src = new InputSource(fileReader);
Document document = constructeur.parse(src);
fileReader.close();
 
Source source = new DOMSource(document);
Result resultat = new StreamResult(filePath);
 
TransformerFactory transformerFab = TransformerFactory.newInstance();
Transformer transformer = transformerFab.newTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.VERSION, "1.0");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
 
transformer.transform(source, resultat);
Cependant, j'obtiens en sorti le fichier suivant :

<?xml version="1.0" encoding="UTF-8"?>
<servinfo>
<title>Description</title>
<ptxt>Pas d'information pour cette fonction à vérifier.</ptxt>
</servinfo>
Les accents ne sont plus sous forme de références numériques comme je le voulais, on a maintenant "à vérifier" au lieu de "&#xe0; v&#xe9;rifier". Comment puis je faire pour garder que les accents restent sous références numériques ?

Merci d'avance.