Transformer : encodage avec référence numérique
Bonjour,
Je cherche à modifier un fichier xml par le DOM tel que le suivant :
Citation:
<?xml version="1.0" encoding="UTF-8"?>
<servinfo>
<title>Description</title>
<ptxt>Pas d'information pour cette fonction à vé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:
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 :
Citation:
<?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 "à vérifier". Comment puis je faire pour garder que les accents restent sous références numériques ?
Merci d'avance.