bonjour,
J'ai un fichier XML auquel je voudrais ajouter des noeuds.
Je créer ces noeuds grâce à un autre document que j'essaye d'importer dans le document original.
Seulement voila, lorsque j'essaye :
voila mon bout de code qui le fait :Erreur du serveur dans l'application '/Arborescence'.
--------------------------------------------------------------------------------
Le noeud à insérer provient d'un contexte de document différent.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.ArgumentException: Le noeud à insérer provient d'un contexte de document différent.
Erreur source:
Ligne 430 : XmlDocument newdoc = new XmlDocument();
Ligne 431 : newdoc.LoadXml(oSB.ToString());
Ligne 432 : nnode.ChildNodes.Item(7).AppendChild(newdoc.ChildNodes.Item(0));
Ligne 433 :
Ligne 434 :/* // on construit le nouveau noeud à ajouter dans le fichier XML DB
Fichier source : d:\refant\refant\web\fo\arborescence\arbo_trait.aspx.cs Ligne : 432
pourquoi donc il me dit que les contexts ne sont pas les mêmes et que je ne peut donc pas ajouter de noeuds ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 foreach (XmlNode oNode in oNodeListXml.Item(1).ChildNodes) { // on construit le nouveau noeud à ajouter dans le fichier XML DB System.Text.StringBuilder oSB = new System.Text.StringBuilder(); oSB.Append("<FICHIER>"); oSB.Append("<NOM>"+oNode.Attributes.GetNamedItem("Text").InnerText+"</NOM>"); oSB.Append("<CHEMIN>"+oNode.Attributes.GetNamedItem("NavigateUrl").InnerText+"</CHEMIN>"); oSB.Append("</FICHIER>"); // que l'on rajoute dans le XML DB //nnode.ChildNodes.Item(7).AppendChild(oSB.ToString()); XmlDocument newdoc = new XmlDocument(); newdoc.LoadXml(oSB.ToString()); nnode.ChildNodes.Item(7).AppendChild(newdoc.ChildNodes.Item(0)); }
Partager