C# 添加,修改,删除Xml节点

//添加xml节点

    private void AddXml(string image, string title)

    {

        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.Load(Server.MapPath("../flash/dati.xml"));


        XmlNode root = xmlDoc.SelectSingleNode("images");//查找<images>

        XmlElement xe1 = xmlDoc.CreateElement("thumb");//创建一个<thumb>节点

        xe1.SetAttribute("displayNum", "6");//设置该节点displayNum属性

        xe1.SetAttribute("separation", "5");//设置该节点separation属性


        XmlElement xesub1 = xmlDoc.CreateElement("image");

        xesub1.InnerText = image;//设置文本节点

        xe1.AppendChild(xesub1);//添加到thumb节点中

        XmlElement xesub2 = xmlDoc.CreateElement("description");

        xesub2.InnerText = title;

        xe1.AppendChild(xesub2);


        root.AppendChild(xe1);//添加到<images>节点中

        xmlDoc.Save(Server.MapPath("../flash/dati.xml"));

    }


 


 


   //删除节点内容

    private void DelXml(string image)

    {

        XmlDocument xmlDoc = new XmlDocument();

        xmlDoc.Load(Server.MapPath("../flash/dati.xml"));


        XmlNodeList xnl = xmlDoc.SelectSingleNode("images").ChildNodes;

       

        foreach (XmlNode xn in xnl)

        {

            XmlElement xe = (XmlElement)xn;

            if (xe.InnerText.IndexOf(image,0) >= 0)

            {

                xn.ParentNode.RemoveChild(xn);

               // xn.RemoveAll();

            }

        }

        xmlDoc.Save(Server.MapPath("../flash/dati.xml"));

    }


 


//修改


foreach(XmlNode xn in nodeList)//遍历所有子节点

   {

    XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型

    if(xe.GetAttribute("genre")=="")// 判读条件

    {

     xe.SetAttribute("genre",newStr);//则修改该属性为newstr 

     XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点

     foreach(XmlNode xn1 in nls)//遍历

     {

      XmlElement xe2=(XmlElement)xn1;//转换类型

      if(xe2.Name=="author")//如果找到 //判读条件

      {

       xe2.InnerText=newText;//则修改

       break;//找到退出来就可以了

      }

     }

     break;

    }


 


 


 



 这里介绍添加XML节点的方法。

       首先定义XML文件:(bookstore.xml)

       <?xml version="1.0" encoding="utf-8"?>

       <bookstore>

              <book genre="fantasy" ISBN="2-9088-1">

                     <title>Oberon's Legacy</title>

                    <author>Corets,Eva</author>

                    <price>20.8</price>

              </book>

      </bookstore>

       OK,这就是有一个简单节点的xml文件,它有一个根节点bookstore,其子节点为book,其中book有两个属性genre 和ISBN,每个book节点又三个子节点title,author 和price。

       下面给这个xml文件添加一个book子节点:

       1.引用XML名称空间: Imports System.xml  

       2.定义一个读取xml文件的方法,暂且这么说吧:

             Dim xmlDoc as New xmlDocument

             xmlDoc.Load("bookstore.xml")

        3.定义根结点,并找到根据节点名字找到根结点

            Dim root  as  XmlNode =xmlDoc.SelectSingleNode("bookstore")

         4.定义一级子节点,注意根结点与子节点的定义方式不同

           Dim xelement as XmlElement =xmlDoc.CreateElement("book")

           xelement.SetAttribute("genre","comedy")        //给一级子节点添加两个属性

           xelement.SetAttribute("ISBN","2-0875-3")

          5.定义二级子节点。节点的定义方式都是相同的,只是赋值的方式有所差别。这里需要定义三个二阶子节点

          Dim xesub1 as XmlElement =xmlDoc.CreateElement("title")

          xesub1.InnerText ="c#"       //给二级子节点赋值

          xelement.AppendChild(xesub1)        //将这个二阶子节点添加给一级子节点

 

          Dim xesub2 as XmlElement =xmlDoc.CreateElement("author")

          xesub2.InnerText ="rubby"

          xelement.AppendChild(xesub2)

 

           Dim xesub3 as XmlElement =xmlDoc.CreateElement("price")

           xesub3.InnerText ="20.8"

           xelement.AppendChild(xesub3)

         6.将子节点添加到根节点中去,并保存该xml文件

           root.AppendChild(xelement)

           xmlDoc.Save("bookstore.xml")

       好了,我们再打开xml文件就会发现,已经新添加了一个book子节点了


此随笔或为自己所写、或为转载于网络。仅用于个人收集及备忘。