bonjour,

j'espere ne pas me tromper de forum, j'ai hésité avec le forum XML mais c'est plus une question sur la fonction à utiliser.

J'ai une structure xml de ce genre:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<A>
  <B>
  </B>
  <C>
  </C>
</A>
Je voudrais insérer un noeud qui se placerait entre A et ses enfants; comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<A>
  <NEW>
    <B>
    </B>
    <C>
    </C>
  </NEW>
</A>
Je ne travaille pas sur un fichier xml "physique", mais sur du code xml stoqué dans un string.

Voici ce que j'ai fais pour l'instant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
object missing = System.Reflection.Missing.Value;
StringReader sr;
StringWriter sw= new StringWriter();
XmlTextWriter xw;
XmlDocument xmlDoc;
XmlElement elem;
sr=new StringReader(xml); //xml est un string qui contient le code xml
xmlDoc = new XmlDocument();
xmlDoc.Load(sr);
XmlNodeList nodeLst=xmlDoc.GetElementsByTagName("A");
foreach(XmlNode node in nodeLst)
{
   elem = xmlDoc.CreateElement("NEW");
   node.InsertAfter(elem, node.FirstChild);
   xw = new XmlTextWriter(sw);
   xmlDoc.WriteTo(xw);
   MessageBox.Show(sw.ToString());
}
Le problème est que celà rajoute le nouveau noeud apres et pas entre, et je ne vois aucunes méthode pour ajouter un noeud entre 2... quelqu'un a une ?

Merci,

Frenchy