Bonjour,
j'ai un soucis avec le DOCYTPE d'un document que je parse avec DOM.
Ca fait plusieurs jours que je cherche une solution, mais rien ne correspond à mon problème qui semble être assez spécifique...

J'ai un fichier xml avec l'entête suivante :
<!DOCTYPE Nomquelconque>

Je le parse avec DOM, en faisant des modifications à l'intérieur (un simple remplacement d'une valeur d'un élément bien précis).
Tout marche sans problème sauf que lorsque j'écris le résultat (avec Transformer), j'obtiens un document qui ne contient pas EXACTEMENT le même DOCTYPE.
Voici le code que j'utilise :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Source source = new DOMSource(doc);
 
// Prepare the output file
File file = new File(filename);
Result result = new StreamResult(file);
 
// Write the DOM document to the file
Transformer xformer = TransformerFactory.newInstance().newTransformer();
 
xformer.setOutputProperty(OutputKeys.INDENT, "yes");
xformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
 
xformer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM, "Test");
Le problème, c'est que j'obtiens
<!DOCTYPE Nomquelconque SYSTEM "Test">
alors qu'il me faut impérativement
<!DOCTYPE Nomquelconque>
Y a-t-il un moyen propre d'arriver au résultat que je souhaite ?

Merci mille fois d'avance pour votre aide, parce que là j'ai l'impression d'avoir tout essayé...

dondamiano