salut
je voudrait inserer un element d'un docment X dans un document Y
la methode createElement:
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
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; import org.w3c.dom.Document; import org.w3c.dom.Element; public class ElementTest { /** * @param args * @throws ParserConfigurationException * @throws TransformerException */ public static void main(String[] args) { DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory .newInstance(); DocumentBuilder documentBuilder; try { documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = documentBuilder.newDocument(); Element e = JAXPutilities.createElement("ab"); Element e1 = JAXPutilities.createElement("aa"); Element e2 = JAXPutilities.createElement("bb"); document.appendChild(e); System.out.println("docum=" + JAXPutilities.xmlToString(document)); } catch (ParserConfigurationException e3) { System.out.println("ParserConfigurationException"); e3.printStackTrace(); } catch (TransformerException e) { System.out.println("TransformerException"); e.printStackTrace(); } } }
j'obtient l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public static Element createElement(String elementName) throws ParserConfigurationException { DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = null; documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document=documentBuilder.newDocument(); Element element =document.createElement(elementName); return element; }
apres des recherches, j'ai trouvé qu'il faut utiliser importNode au lieu de appendChild
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Exception in thread "main" org.w3c.dom.DOMException: DOM005 Wrong document at org.apache.xerces.dom.ParentNode.internalInsertBefore(ParentNode.java:393) at org.apache.xerces.dom.ParentNode.insertBefore(ParentNode.java:325) at org.apache.xerces.dom.DocumentImpl.insertBefore(DocumentImpl.java:410) at org.apache.xerces.dom.NodeImpl.appendChild(NodeImpl.java:226) at ElementTest.main(ElementTest.java:26)
Avec importNode, pas d'erreur mais l'element n'est pas ajouté:
j'obtien en executant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part docum=<?xml version="1.0" encoding="UTF-8"?>
Partager