[xml/dom] Copier un noeud d'un doc à un autre

Copier un noeud d'un doc à un autre [xml/dom] - Java - Programmation

Marsh Posté le 26-07-2005 à 11:21:12    

Bonjour,  
 
je débute dans l'utilisation de XML avec Java. J'utilise l'API Dom pour construire un document SVG.  
 

Code :
  1. Node aNode = builder.getDOMImplementation().createDocument(null, aQualifiedName, doctype);


 
La ligne ci-dessus, en tenant compte de la création d'un Builder au préalable, crée l'entête d'un document suivante quand je l'affiche :  
 
<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">  
<svg/>  
 
Je voudrais créer avec le code suivant une balise <svg></svg> :  
 

Code :
  1. Document doc = (Document)aNode;
  2. Element racine = doc.createElement("svg" );
  3. doc.appendChild(racine);


 
J'ai l'erreur suivante à l'éxecution :  
 
"org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: An attempt was made to insert a node where it is not permitted. "  
 
Pourriez-vous m'expliquer et/ou corriger mon erreur ?  
 
Merci d'avance  
 
Bonne journée :)


Message édité par oinfinou le 27-07-2005 à 14:33:26
Reply

Marsh Posté le 26-07-2005 à 11:21:12   

Reply

Marsh Posté le 26-07-2005 à 14:52:21    

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">  
<svg/>  
 
tu as déjà une racine qui s'appelle svg...  
donc si tu essaye de rajouter une 2ème racine, ça plante :)

Reply

Marsh Posté le 27-07-2005 à 10:49:14    

Exact ... je te remercie, ça fonctionne maintenant :)
 
Par contre, lorsque je veux copier un noeud d'un document vers un autre avec la methode importNode, ça génère une erreur.  
 
Voici le code :
 
Node sourceNode = docSource.getChildNodes().item(1);  
Node destNode = docDest.getChildNodes().item(1);  
Node sourceNode2 = docDest.importNode(sourceNode, true);  
docDest.appendChild(sourceNode2);  
 
et voici l'erreur :
 
org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it
 
Sauriez-vous pourquoi ?  
 
Merci de votre aide :)

Reply

Marsh Posté le 27-07-2005 à 14:34:18    

Quelqu'un aurait-il déjà utilisé la méthode importNode avec succès ?

Reply

Marsh Posté le 27-07-2005 à 17:33:40    

oinfinou a écrit :

Quelqu'un aurait-il déjà utilisé la méthode importNode avec succès ?


 
Es-tu sur que tu as besoin de faire un import sur le Node ?
 
Il me semblait que AppendChild allait proceder a une copie defensive et qu'il n'y aurait pas de probleme.
 
 

Code :
  1. Node sourceNode = docSource.getChildNodes().item(1); 
  2. docDest.appendChild(sourceNode );


Message édité par bartleby le 27-07-2005 à 17:37:47
Reply

Marsh Posté le 29-07-2005 à 13:38:12    

Le problème est résolu, j'avais une erreur d'implémentation. Cependant, même avec l'erreur corrigée, je suis obligé d'utiliser importNode ... Mais pourquoi, je ne sais pas.  
 
Merci pour votre aide :)

Reply

Marsh Posté le 03-06-2012 à 19:25:55    

oinfinou a écrit :

Le problème est résolu, j'avais une erreur d'implémentation. Cependant, même avec l'erreur corrigée, je suis obligé d'utiliser importNode ... Mais pourquoi, je ne sais pas.  
 
Merci pour votre aide :)


 
Salut oinfinou!!
 
J'ai exactement le problème que tu avait... et je dois rendre mon projet!!!!
Je ne comprend pas comment tu as résolu ton problème quand tu dis "une erreur d'implémentation"
 
Merci d'avance de ton assitance.
 voici mon mail : pas de mail sur le forum@hotmail.com


Message édité par gilou le 03-06-2012 à 19:32:57

---------------
akk
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed