Problème avec ImportNode

Résolu
amalcon Messages postés 12 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 8 février 2007 - 8 févr. 2007 à 15:36
amalcon Messages postés 12 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 8 février 2007 - 8 févr. 2007 à 17:20
Bonjour,

J'ai besoin d'insérer des noeuds d'un document dans un nouveau document Xml. J'ai pour cela utilisé ce qui est indiqué ici : http://www.csharpfr.com/infomsg_AJOUT-FICHIER-XML-FIN-AUTRE-FICHIER-XML_722353.aspx


Après un bug, j'ai ajouté un try catch autour de l'AppendChild comme ceci :

XmlNode nodeToCopy = nodesToCopy[j];

XmlNode importedNode = outdoc.ImportNode(nodeToCopy,
true
);


try


{
   
outdoc.AppendChild(importedNode);
}

catch
(Exception ex)
{                
    MessageBox.Show("Saxon AppendChild Exception : "+ex.Message + "\n" + ex.StackTrace);
}

Le reste du code est un copié collé de la source du lien.

La messagebox me renvoie le texte : "This document already has a DocumentElement node".
Au début, je pensais que c'était certains noeuds en double qui posaient problème, mais en le faisant sur des fichiers qui n'ont pas de noeuds en  double, ca me renvoie toujours ce message.
Je coince vraiment et étant novice en xml et débutante en c#, j'ai un peu de mal à comprendre ce qui ne va pas.

Merci à ceux qui pourront m'aider.

2 réponses

amalcon Messages postés 12 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 8 février 2007
8 févr. 2007 à 17:20
C'est quand même dommage qu'on puisse pas éditer un message, ca m'aurait éviter d'en poster 2 de plus.

En fait, le bug viennait bien du
AppendChild, que j'appliquais sur le XmlDocument(out doc dans mon exemple) et pas sur le XmlNode de destination. D'ou le lien vers le DocumentElement.

Désolée.
3
amalcon Messages postés 12 Date d'inscription vendredi 22 octobre 2004 Statut Membre Dernière intervention 8 février 2007
8 févr. 2007 à 16:36
C'est marrant, j'ai pu reproduire le bug avec l'exemple que je cite (sans faire un vrai copier coller, mais en adaptant le code). Si je fais un strict copier coller, je n'ai pas le bug, ni pour l'exemple, ni pour mon application. Du coup, je n'ai plus de problème, mais je vais essayer de reproduire le bug pour savoir d'où ca venait. C'est quand même bizarre.
0