Salut,
comment peut-on créer un element vide dans un Document en utilisant DOM,
me donne juste <monelement></monelement>je voudrais insérer un element vide : <exemple/> :aie:Code:Element element = monDoc.createElement("monelement")
Version imprimable
Salut,
comment peut-on créer un element vide dans un Document en utilisant DOM,
me donne juste <monelement></monelement>je voudrais insérer un element vide : <exemple/> :aie:Code:Element element = monDoc.createElement("monelement")
D'un point de vue xml, c'est strictement la même chose. <element></element> EST un élément vide. C'est ton implémentation utilisée pour faire l'écriture qui choisi cette forme plutot qu'une autre. Elle a toute liberté de le faire, comme elle a la liberté de faire de l'indentation ou pas, d'utiliser des entité nommées (ex <) plutot que des entités numérique (&#....;) etc.
Si tu nous disais qu'est-ce que tu utilise pour faire ton output, ont pourrais peut-être t'orienter vers la bonne config :D
Salut,
ce n'est pas résolu.
mon output est un fichier xml, je veux écrire cette balise <element/> et pas <element></element>
:(
Bon j'ai extrait le code de mes methodes , j'espere qu'il est lisible,
j'attends vos reponses.:?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 DocumentBuilder docBuilder = null; try { docBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); } catch(ParserConfigurationException e) { System.err.println("Impossible de cr�er un DocumentBuilder."); System.exit(1); } Document doc = docBuilder.newDocument(); //creation des elements Source source = new DOMSource(doc); Result resultat = new StreamResult(new File("test.xml")); // création du transformateur XML Transformer transfo = null; try { transfo = TransformerFactory.newInstance().newTransformer(); } catch(TransformerConfigurationException e) { System.err.println("Impossible de créer un transformateur XML."); System.exit(1); } transfo.setOutputProperty(OutputKeys.METHOD, "xml"); transfo.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transfo.setOutputProperty(OutputKeys.ENCODING, "utf-8"); transfo.setOutputProperty(OutputKeys.INDENT, "yes"); try { transfo.transform(source, resultat); } catch(TransformerException e) { System.err.println("La transformation a échoué : " + e); System.exit(1); }
Quelle implémentation dut transformer utilise tu? Ici, j'utilise xalan, et je n'ai pas ce phénomène:
Code:
1
2
3
4
5
6 TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); transformer.setOutputProperty("indent", "yes"); transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); transformer.setOutputProperty("encoding", settings.getEncoding());
Salut,
problème resolu.
DOM par defaut, si j'ajoute à l'arbre un element n'ayant aucun contenu il l'ajoute sur cette format <element/> : balise vide ce qui répond à mes besoin. :yaisse2: