Inserting XML node at specific position

前端 未结 3 1302
遇见更好的自我
遇见更好的自我 2020-12-11 08:36

I have an XML file and I am loading it in Xmldocument. This document has a node with some child nodes like this


 
   

        
3条回答
  •  余生分开走
    2020-12-11 08:46

    Here is a solution without using LINQ to XML. It's implemented as an extension method for the XmlNode class:

    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);
    }
    

    Now, you can insert a node at the desired position as simple as:

        parentXmlNode.InsertAt(childXmlNode, 7);
    

提交回复
热议问题