c# 操作xml文件(插入节点、修改、删除)

简介: 引用:http://www.qqread.com/csharp/p359862.html   已知有一个xml文件(bookstore.xml)如下: Oberon's Legacy 。   已知有一个XML文件(bookstore.

引用:http://www.qqread.com/csharp/p359862.html

 

已知有一个xml文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <bookstore> <book genre="fantasy" ISBN="2-3631-4"> <title>Oberon's Legacy</title> <author>。

 

已知有一个XML文件(bookstore.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>节点:   
        XmlDocument   xmlDoc=new   XmlDocument();   
        xmlDoc.Load("bookstore.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("bookstore.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>   
      <book   genre="李赞红"   ISBN="2-3631-4">   
          <title>CS从入门到精通</title>   
          <author>候捷</author>   
          <price>58.3</price>   
      </book>   
  </bookstore>   
      
  2、修改节点:将genre属性值为“李赞红“的节点的genre值改为“update李赞红”,将该节点的子节点<author>的文本修改为“亚胜”。   
          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");//保存。   
  //==================================================   
  最后结果为:   
  <?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>   
      <book   genre="update李赞红"   ISBN="2-3631-4">   
          <title>CS从入门到精通</title>   
          <author>亚胜</author>   
          <price>58.3</price>   
      </book>   
  </bookstore>   
      
  3、删除   <book   genre="fantasy"   ISBN="2-3631-4">节点的genre属性,删除   <book   genre="update李赞红"   ISBN="2-3631-4">节点。   
  XmlNodeList   xnl=xmlDoc.SelectSingleNode("bookstore").ChildNodes;   
      
        foreach(XmlNode   xn   in   xnl)   
        {   
          XmlElement   xe=(XmlElement)xn;   
          if(xe.GetAttribute("genre")=="fantasy")   
          {   
            xe.RemoveAttribute("genre");//删除genre属性   
          }   
          else   if(xe.GetAttribute("genre")=="update李赞红")   
          {   
            xe.RemoveAll();//删除该节点的全部内容   
          }   
        }   
        xmlDoc.Save("bookstore.xml");   
  //===========================================   
  最后结果为:   
  <?xml   version="1.0"   encoding="gb2312"?>   
  <bookstore>   
      <book   ISBN="2-3631-4">   
          <title>Oberon's   Legacy</title>   
          <author>Corets,   Eva</author>   
          <price>5.95</price>   
      </book>   
      <book>   
      </book>   
  </bookstore>   
      
  4、显示所有数据。   
        XmlNode   xn=xmlDoc.SelectSingleNode("bookstore");   
      
        XmlNodeList   xnl=xn.ChildNodes;   
          
        foreach(XmlNode   xnf   in   xnl)   
        {   
          XmlElement   xe=(XmlElement)xnf;   
          Console.WriteLine(xe.GetAttribute("genre"));//显示属性值   
          Console.WriteLine(xe.GetAttribute("ISBN"));   
      
          XmlNodeList   xnf1=xe.ChildNodes;   
          foreach(XmlNode   xn2   in   xnf1)   
          {   
            Console.WriteLine(xn2.InnerText);//显示子节点点文本   
          }   
        }    

[责任编辑:qqread.com/巧巧豆]

相关文章:VC++中利用MSXML解析XML文档

这种对象模型实现的基本功能包括:·描述文档表示和操作的接口; · 接口的行为和属性;· 接口之间的关系以及互操作。一、 xml 简介XML(Xtensible Markup Language,即扩展标记语言)的发展起源于1996年。DTD和XML大纲规定了XML文件的逻辑结构,定义了XML文件中的元素、元素的属性以及元素与元素属性之间的关系。

相关文章
|
8天前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法用于访问 XML 文档中的特定节点。该方法返回一个节点列表,相当于节点数组,可用来遍历和导航节点树。例如,加载 &quot;books.xml&quot; 到 xmlDoc 后,`x = xmlDoc.getElementsByTagName(&quot;book&quot;)` 将获取所有 `&lt;book&gt;` 节点。
|
15天前
|
XML Java 数据格式
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
Spring5系列学习文章分享---第一篇(概述+特点+IOC原理+IOC并操作之bean的XML管理操作)
18 1
|
2天前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
该文介绍了XML DOM遍历节点树的概念,通过循环移动遍历文档,以提取各元素值。示例代码展示了如何加载XML到xmlDoc,获取根元素子节点并打印其名称和值,例如:`title: Everyday Italian`, `author: Giada De Laurentiis`, `year: 2005`。
|
6天前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法从 `xmlDoc` 加载 &quot;books.xml&quot;,返回一个节点列表。这个列表是不连续的节点数组,允许遍历和访问XML文档中的特定节点。通过节点关系及循环,可以在文档对象模型(DOM)中导航并访问每个节点。
|
5天前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
该文介绍了XML文档对象模型(DOM)中的节点遍历。通过遍历节点树,可以循环访问XML文档的各个元素。示例代码展示如何遍历一个XML结构,打印出所有子节点的名称和值。在HTML中,XML字符串被加载到`xmlDoc`,然后获取根元素的子节点并逐一输出其信息。
|
12天前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法用于获取 XML 文档中指定标签名的所有节点,返回一个节点列表,类似数组。可以循环遍历节点树或利用节点关系导航来访问每个节点。例如,加载 &quot;books.xml&quot; 到 xmlDoc 后,变量 x 存储了所有 `&lt;book&gt;` 节点的列表。
|
12天前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法用于访问XML文档中的特定节点。节点可按三种方式获取:使用该方法、遍历节点树或导航节点关系。`getElementsByTagName()` 返回一个节点列表,类似数组,可用于处理多个匹配节点。例如,代码加载 &quot;books.xml&quot; 到 `xmlDoc`,再将结果保存到变量 `x`。
|
10天前
|
XML 存储 JavaScript
XML DOM - 访问节点
`getElementsByTagName()` 方法用于获取 XML 文档中指定标签名的所有节点,返回一个节点列表,可遍历处理。通过节点关系及循环,能灵活访问和导航XML文档的整个节点树。例如,`xmlDoc.getElementsByTagName(&quot;book&quot;)` 返回一个包含所有 `&lt;book&gt;` 节点的数组。
|
11天前
|
XML Java 数据库
配置applicationContext.xml文件
配置applicationContext.xml文件
|
15天前
|
XML 数据格式
XML配置Servlet文件,不使用注解配置路径的方法
XML配置Servlet文件,不使用注解配置路径的方法