我想请问下,
 
 在节点后面添加兄弟结点,要怎么弄.如果图中所示..我想在标记的下面新增一节点,标记的节点我可以获取到
 
   XmlNodeList nodelist = xmlDoc.SelectSingleNode("root").ChildNodes;
        XmlElement xe = xmlDoc.CreateElement("img");
        xe.SetAttribute("id", nid.ToString());
        xe.SetAttribute("dir_1","背景");
        xe.SetAttribute("dir_2","社会景");
        xe.SetAttribute("sexFlg","2");        foreach(XmlNode xn in nodelist)
        {
            XmlElement xele = (XmlElement)xn;
            string cid = xele.Attributes["id"].InnerText.ToString();
            if (cid.Equals(id))//这里的id=210009
            {
                xn.InsertAfter(xe,xele);//这里报错
            }
        
        }
 

解决方案 »

  1.   

    XmlNode node = xmlDoc.SelectSingleNode("root/img[@id='210009
    ']");//直接选择到你需要的XmlNode
    XmlElement xe = xmlDoc.CreateElement("img");
    xe.SetAttribute("id", nid.ToString());
    xe.SetAttribute("dir_1","背景");
    xe.SetAttribute("dir_2","社会景");
    xe.SetAttribute("sexFlg","2");node.ParentNode.InsertAfter(xe, node);
      

  2.   


           public static void Insert(string path, string node, string element, string attribute, string value)
            {
                try
                {
                    XmlElement element2;
                    XmlDocument document = new XmlDocument();
                    document.Load(path);
                    XmlNode node2 = document.SelectSingleNode(node);
                    if (element.Equals(""))
                    {
                        if (!attribute.Equals(""))
                        {
                            element2 = (XmlElement) node2;
                            element2.SetAttribute(attribute, value);
                        }
                    }
                    else
                    {
                        element2 = document.CreateElement(element);
                        if (attribute.Equals(""))
                        {
                            element2.InnerText = value;
                        }
                        else
                        {
                            element2.SetAttribute(attribute, value);
                        }
                        node2.AppendChild(element2);
                    }
                    document.Save(AppDomain.CurrentDomain.BaseDirectory.ToString() + path);
                }
                catch
                {
                }
            }
      

  3.   

                DataSet ds = new DataSet();
                ds.ReadXml("1.xml");
                ds.Tables[0].Rows.Add(new object[] {"4","asdf","ddd","eee" });
                ds.Tables[0].DefaultView.Sort ="id asc";
                DataTable dtTemp = ds.Tables[0].DefaultView.ToTable();
                ds.Tables.Remove(ds.Tables[0]);
                ds.Tables.Add(dtTemp);
                ds.WriteXml("3.xml");这样如何