OVH Cloud OVH Cloud

copie d'un noeud xml d'un XmlDocument vers un autre

4 réponses
Avatar
Cool6a
Bonjour,
Je selectionne un noeud d'un document XmlDoc1 et je veux insérer une copie
de ce noeud dans XmlDoc2, le compilateur affiche l'erreure suivante :
Le noeud à insérer provient d'un contexte different.
SVP, Comment faire pour resoudre ce problème??

4 réponses

Avatar
Ambassadeur Kosh
> Je selectionne un noeud d'un document XmlDoc1 et je veux insérer une
copie
de ce noeud dans XmlDoc2, le compilateur affiche l'erreure suivante :
Le noeud à insérer provient d'un contexte different.
SVP, Comment faire pour resoudre ce problème??



CloneNode fabrique une copie conforme mais pour le meme document.
il faut utiliser ImportNode

XmlNode olsNode = doc1.SelectSingleNode("...") ;
XmlNode newNode = doc2.ImportNode(oldNode) ;
...

voila
Avatar
Cool6a
Merci Bcp, ça marche, il faut jute ajouter le deuxième param qui est un bool
qui indique si on veut une copie complete, c-à-d avec la liste des fils
(true) ou non (false). doc2.ImportNode(oldNode,true);

"Ambassadeur Kosh" a écrit dans le message de
news:
> Je selectionne un noeud d'un document XmlDoc1 et je veux insérer une
> copie
> de ce noeud dans XmlDoc2, le compilateur affiche l'erreure suivante :
> Le noeud à insérer provient d'un contexte different.
> SVP, Comment faire pour resoudre ce problème??

CloneNode fabrique une copie conforme mais pour le meme document.
il faut utiliser ImportNode

XmlNode olsNode = doc1.SelectSingleNode("...") ;
XmlNode newNode = doc2.ImportNode(oldNode) ;
...

voila




Avatar
Cool6a
Le problème c'est ces traitements sont dans une methode, et quant je sort de
la methode, je ne trouve plus le noeud que j'ai ajouté !!!

"Cool6a" a écrit dans le message de
news:%
Merci Bcp, ça marche, il faut jute ajouter le deuxième param qui est un


bool
qui indique si on veut une copie complete, c-à-d avec la liste des fils
(true) ou non (false). doc2.ImportNode(oldNode,true);

"Ambassadeur Kosh" a écrit dans le message de
news:
> > Je selectionne un noeud d'un document XmlDoc1 et je veux insérer une
> > copie
> > de ce noeud dans XmlDoc2, le compilateur affiche l'erreure suivante :
> > Le noeud à insérer provient d'un contexte different.
> > SVP, Comment faire pour resoudre ce problème??
>
> CloneNode fabrique une copie conforme mais pour le meme document.
> il faut utiliser ImportNode
>
> XmlNode olsNode = doc1.SelectSingleNode("...") ;
> XmlNode newNode = doc2.ImportNode(oldNode) ;
> ...
>
> voila
>
>




Avatar
Cool6a
Desolé pour le dérangement, c'était une err de ma part, j'ai laissé le
"false" dans le dernier test :(
"Cool6a" a écrit dans le message de
news:
Le problème c'est ces traitements sont dans une methode, et quant je sort


de
la methode, je ne trouve plus le noeud que j'ai ajouté !!!

"Cool6a" a écrit dans le message de
news:%
> Merci Bcp, ça marche, il faut jute ajouter le deuxième param qui est un
bool
> qui indique si on veut une copie complete, c-à-d avec la liste des fils
> (true) ou non (false). doc2.ImportNode(oldNode,true);
>
> "Ambassadeur Kosh" a écrit dans le message


de
> news:
> > > Je selectionne un noeud d'un document XmlDoc1 et je veux insérer


une
> > > copie
> > > de ce noeud dans XmlDoc2, le compilateur affiche l'erreure suivante


:
> > > Le noeud à insérer provient d'un contexte different.
> > > SVP, Comment faire pour resoudre ce problème??
> >
> > CloneNode fabrique une copie conforme mais pour le meme document.
> > il faut utiliser ImportNode
> >
> > XmlNode olsNode = doc1.SelectSingleNode("...") ;
> > XmlNode newNode = doc2.ImportNode(oldNode) ;
> > ...
> >
> > voila
> >
> >
>
>