J’ai un fichier XML et je le charge dans Xmldocument. Ce document a un nœud avec des nœuds enfants comme celui-ci
// I need to insert it // I need to insert this second time
ici, somenode a des enfants où les noms de nœuds premier et dernier enfants sont identiques, alors que les autres nœuds, à l’exception du premier et du dernier nœud, ont un nom différent (identiques l’un à l’autre). Je crée une fonction pour insérer un nœud à une position spécifique. Je ne suis pas sûr des critères mais je peux être au milieu.
vous pouvez utiliser XLinq pour modifier un document XML
Voici un exemple de modification XML
Ssortingng xmlSsortingng = ""+""+ ""+ " "+ " 1 "+ //1 " 2 "+ //2 " 3 "+ // 3, I need to insert it " 4 "+ //4, I need to insert this second time " 5 "+ " 6 "+ " "+ " "+ " "; XElement root = XElement.Parse(xmlSsortingng); var childrens = root.Descendants("children").ToArray(); var third = childrens[3]; var fourth = childrens[4]; third.AddBeforeSelf(new XElement("children")); fourth.AddBeforeSelf(new XElement("children")); var updatedchildren = root.Descendants("children").ToArray();
Voici une solution sans utiliser LINQ to XML . Il est implémenté en tant que méthode d’extension pour la classe XmlNode
:
public static void InsertAt(this XmlNode node, XmlNode insertingNode, int index = 0) { if(insertingNode == null) return; if (index < 0) index = 0; var childNodes = node.ChildNodes; var childrenCount = childNodes.Count; if (index >= childrenCount) { node.AppendChild(insertingNode); return; } var followingNode = childNodes[index]; node.InsertBefore(insertingNode, followingNode); }
Maintenant, vous pouvez insérer un nœud à la position désirée aussi simplement que:
parentXmlNode.InsertAt(childXmlNode, 7);
http://www.c-sharpcorner.com/Forums/Thread/55428/how-to-insert-xml-child-node-programmatically.aspx Cheack! Je suppose que cela vous aidera.