Il faut au préalable importer le nœud au sein du document :
Node appln2Node = xInterrogate.evaluate("appln2" ,documentStream).item(0);
Node appln2NodeInDoc = appInPartElement.getOwnerDocument().importNode(appln2Node);
Et ensuite remplacer :
appInPartElement.replaceChild(appln2NodeInDoc ,appInPartElement);
Cordialement,
--------------------------------------------------------------------
Erik Mazoyer, Chef de projet
HyperOffice
6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
Tél. 01 41 96 96 76
Fax 01 41 96 96 77
Mél erik.mazoyer@hyperoffice.fr
-----Message d'origine-----
De : ziad.elkhatib@mpsa.com [mailto:ziad.elkhatib@mpsa.com]
Envoyé : jeudi 13 avril 2006 15:20
À : xml-tech@xmlfr.org
Objet : [xml-tech] PB sur un ReplaceChild
Bonjour tout le monde,
Lorsque je fais un replaceChild sur un document sur lequel je travaille il me génère l'exception suivante:
org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: Un noeud est utilisé dans un document différent de celui qui l'a créé.
Ce qui est vrai puisuqe je veux remplacer le noeud dans un document par un noeud venant d'un autre document... Comment puis je faire cela ?
Voici mon code:
// on parcourt chaque element
for(int j = 0; j < nbrEleInPart; j++){
Node appInPartElement = partElement.getChildNodes().item(j);
// et on regarde si c'est une applicabilité
if(appInPartElement.getNodeName().equals("appln2")){
// on construit un node a partir de l'xmlFlux
ByteArrayInputStream documentStream = new ByteArrayInputStream(xmlFlux.getBytes());
Node appln2Node = xInterrogate.evaluate("appln2" ,documentStream).item(0);
// si c'en est une, on remplace cet enfant la par xmlFlux
appInPartElement.replaceChild(appln2Node,appInPartElement);
}
Merci :-)
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Thu Apr 13 16:45:04 2006