salut
je voudrait inserer un element d'un docment X dans un document Y
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();
		}

	}

}
la methode createElement:
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;
	}
j'obtient l'erreur suivante:
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)
apres des recherches, j'ai trouvé qu'il faut utiliser importNode au lieu de appendChild
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"?>