天天看点

C#读写xml文件

c#读写xml文件

已知有一个XML文件(bookstore.xml)如下:

C#读写xml文件
C#读写xml文件

代码

<?xml version="1.0" encoding="gb2312"?>

<bookstore>  

     <book genre="fantasy" ISBN="2-3631-4">    

          <title>Oberon's Legacy</title>    

          <author>Corets, Eva</author>    

          <price>5.95</price>  

     </book>

</bookstore>

1、往<bookstore>节点中插入一个<book>节点:

C#读写xml文件
C#读写xml文件

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load("da.xml");

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

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

            xe1.SetAttribute("genre", "李赞红");//设置该节点genre属性

            xe1.SetAttribute("ISBN", "2-3631-4");//设置该节点ISBN属性

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

            xesub1.InnerText = "CS从入门到精通";//设置文本节点

            xe1.AppendChild(xesub1);//添加到<book>节点中

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

            xesub2.InnerText = "候捷";

            xe1.AppendChild(xesub2);

            XmlElement xesub3 = xmlDoc.CreateElement("price");

            xesub3.InnerText = "58.3";

            xe1.AppendChild(xesub3);

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

            xmlDoc.Save("da.xml");

结果为:

C#读写xml文件
C#读写xml文件

<bookstore>

  <book genre="fantasy" ISBN="2-3631-4">

    <title>Oberon's Legacy</title>

    <author>Corets, Eva</author>

    <price>5.95</price>

  </book>

  <book genre="李赞红" ISBN="2-3631-4">

    <title>CS从入门到精通</title>

    <author>候捷</author>

    <price>58.3</price>

2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。

C#读写xml文件
C#读写xml文件

XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;

//获取bookstore节点的所有子节点

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

{

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

    if(xe.GetAttribute("genre")=="李赞红")//如果genre属性值为“李赞红”

    {

        xe.SetAttribute("genre","update李赞红");//则修改该属性为“update李赞红”

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

         foreach(XmlNode xn1 in nls)//遍历

         {

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

              if(xe2.Name=="author")//如果找到

              {

                   xe2.InnerText="亚胜";//则修改

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

              }

         }

         break;

   }

}

xmlDoc.Save("bookstore.xml");//保存。

C#利用XmlTextReader读取XML节点数据

C#读写xml文件
C#读写xml文件

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

<google>

  <googleColorBorder>f6fbff</googleColorBorder>

  <googleColorBG>f6fbff</googleColorBG>

  <googleColorLink>666666</googleColorLink>

  <googleColorText>046b7A</googleColorText>

  <googleColorUrl>008000</googleColorUrl>

</google>

C#读写xml文件
C#读写xml文件

protected void Page_Load(object sender, EventArgs e)

        XmlTextReader xtr = new XmlTextReader("c:\\AdColor2.xml");

        while (xtr.Read()) {

            if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "googleColorBorder") {

                Response.Write(xtr.ReadString() + "<br/>");

            }

            if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "googleColorBG")

            {

            if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "googleColorLink")

            if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "googleColorText")

            if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "googleColorUrl")

        }

    }