J'ai toujours le problème d'ajouter des nouveaux éléments dans un fichier existant. Ces nouveaux élements seront récupérés depuis un autre fichier XML. Les nouveaux éléments peuvent être différents par rapport aux éléments du fichier déjà existant. Par exemple-->
fichier existant:
<rdf>
<goal>
<name>xx<\name>
<specialization rdf:resource http:\\.xyz...owl\>
<\goal>
<\rdf>
nouveau fichier à parser vient de http:\\.xyz...owl :
<rdf>
<process>
<name>xx<\name>
<generalization rdf:resource http:\\.abc...owl\>
<\process>
<\rdf>
En gros, la racine <rdf> est toujours pareil pour tous les fichiers mais le rest est différent....donc ma méthodologie est que
1) je commence par parser le fichier existant et récupère la ressource pour pouvoir parser la deuxième en vérifiant si (attributeName == rdf:resource)
2) j'utilise méthode appendChild pour créer les nouveaux éléments comme ca:
et j'obtiens le message erreur comme ça:
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 DOMParser parser2 = new DOMParser(); parser2.parse(valueAttribute); // value Attribute = http://...xyz..owl. --> récupère depuis le fichier existant Document doc = parser2.getDocument(); Element rdf2 = doc.getDocumentElement(); NodeList file2 = rdf2.getElementsByTagName("*"); for (int k = 0; k < file2.getLength(); k++) { Element process = (Element) file2.item(k); //document = le fichier existant. document.createElement(process.getNodeName()); process.appendChild(document.createTextNode(IndexDOM.findText((Element) file2.item(k)))); ((Element) file2.item(0)).appendChild(process); rdf.appendChild((Element) file2.item(0));
rdf:ID ="ENT-10150"Exception in thread "main" org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it.
at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source)
at org.apache.xerces.dom.ParentNode.insertBefore(Unknown Source)
at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source)
at bodyclass.RetreiveElementsMakingChainTestAttribute.main(RetreiveElementsMakingChainTestAttribute.java:89)
la ligne 89 est --> process.appendChild(document.createTextNode(IndexDOM.findText((Element) file2.item(k))));
SVP, merci de me conseiller comment corriger cet erreur![]()
Partager