`
BabyDuncan
  • 浏览: 584362 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

c# Dom方法操作XML文件

阅读更多
已知有一个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);//显示子节点点文本
    }
   }
分享到:
评论

相关推荐

    C#操作XML文件完整源码(十分经典)

    本主题将深入探讨如何使用C#操作XML文件,通过以下知识点来理解并实现这一过程。 1. **XML基础知识**: - XML的结构:XML文件由元素、属性、文本内容和命名空间等构成,遵循严格的规则。 - XML文档对象模型(DOM...

    XML中dom根据属性检索节点(C#)

    在提供的实验1文件中,可能包含了一个示例XML文件和相关的C#代码,用于演示如何根据属性检索XML节点。通过分析这些代码,你可以更深入地理解这个过程,并将这些知识应用到实际项目中。对于初学者而言,理解并掌握...

    字符串转化为XML文件

    本文将详细介绍字符串转化为XML文件的知识点,包括XML文件的基本结构、StringBuilder类的使用、XML文档对象模型(DOM)、XML文件的保存等。 XML文件的基本结构 XML(Extensible Markup Language)是一种标记语言,...

    C#操作XML文件完整源码2019

    在C#中,处理XML文件主要涉及.NET Framework提供的System.Xml命名空间中的类和方法。下面我们将深入探讨一些关键的C# XML操作知识点: 1. **读取XML文件**:可以使用`XmlDocument`类加载XML文件。例如: ```csharp...

    C# XML文件读取示例

    在C#编程环境中,XML...以上就是C#中读取XML文件的四种常见方法。选择哪种方法取决于具体的需求,如文件大小、性能要求以及是否需要对XML进行复杂的查询操作。在实际开发中,应根据项目需求灵活选择并优化代码。

    C# 操作XML文件 实例源码(文件处理)

    本文将深入探讨如何使用C#进行XML文件的操作,包括读取、写入、修改和解析XML文档。 首先,我们需要了解C#中的System.Xml命名空间,它提供了处理XML文档的各种类。最常用的是XmlDocument和XmlNode类,它们允许我们...

    XML_DOM_SAX.rar_ XML_DOM_SAX_c# sax_dom解析xml_xml parser csharp_x

    DOM解析器的优点是操作灵活,可以随时访问任何部分的文档,但缺点是占用内存大,对于大型XML文件,可能会导致性能问题。在C#中,`System.Xml`命名空间提供了对DOM的支持,如`XmlDocument`类用于加载和操作XML文档。 ...

    c#中对XML文件进行读写操作

    本篇文章将详细阐述如何在C#中进行XML文件的读写操作,包括基本概念、常用API以及实例演示。 首先,我们需要了解XML的基本结构。XML是一种自描述的语言,通过元素(Element)、属性(Attribute)和值(Value)来...

    C#简单操作XML完整示例源码2019

    例如,你可以通过`Load`方法加载XML文件,然后使用`SelectNodes`或`SelectSingleNode`方法来查询特定节点。 2. **写入XML** `XmlTextWriter`类允许程序员创建新的XML文件或向现有文件追加内容。通过设置属性如编码...

    C#读取XML文件 xml .net

    5. **使用XmlSerializer**:如果你的XML文件对应于一个特定的C#类结构,可以使用XmlSerializer进行序列化和反序列化操作,将XML数据直接转换为对象。首先,定义一个与XML结构匹配的类,然后使用以下代码反序列化: ...

    c# 操作XML 技术

    C# 操作 XML 技术详解 XML 作为一个非常重要的纯文本格式已经进入了编程的很多领域,作为一个面向应用层面的 C# 也一样在很多领域离不开 XML。但是,C# 在很多方面对 XML 做了写封装,以至于很多操作 XML 的代码,...

    C#操作XML文件完整源码

    本教程将详细介绍如何使用C#来操作XML文件,包括读取、写入、修改和解析XML文档。 1. XML的基本结构: - XML文档由元素构成,元素是XML的基本构建块,如`&lt;element&gt;content&lt;/element&gt;`。 - 属性用于为元素提供附加...

    Csharp读写XML文件

    1. **XmlDocument**:这是处理XML文档的核心类,可以加载XML文件,进行DOM(Document Object Model)操作,如添加、删除、修改元素。 2. **XmlNode** 和其子类:XmlNode代表XML文档中的一个节点,如元素...

    C#操作Xml文件.rar_CSahrpForXml

    压缩包内的"C#操作Xml文件"可能包含了使用这些技术的具体代码示例,包括如何创建XML文档、添加元素、读取元素值、修改元素属性、删除节点以及序列化和反序列化XML等操作。通过学习这些示例,开发者可以深入理解如何...

    C# XML解析方式

    根据给定文件中的标题、描述、标签以及部分内容,可以总结并深入探讨以下关于C#中XML解析的关键知识点: ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`...

    XmlDom.rar_DOM_dom xml

    在"XmlDom.cs"文件中,我们可能看到的是C#代码,它展示了如何加载XML文件到DOM树,遍历树以读取或修改数据,以及如何保存更改后的文档。以下是一些基本的DOM操作步骤: 1. 加载XML文档:首先,我们需要使用`Xml...

    xml.rar_C#XML_Csharp 文件_ListView x_c# xml_xml文件

    这篇教程或资料集“xml.rar”似乎是一个关于使用C#操作XML文件的综合指南,特别关注了C#与XML的结合以及如何在ListView控件中展示XML数据。 首先,我们来看看C#处理XML的基本方法。C#提供了System.Xml命名空间,...

    c#操作浏览器dom对象

    文件名为“BroswerTest”的压缩包可能包含了相关的示例代码或测试用例,用于演示如何在C#中操作浏览器的DOM对象。解压并研究这些文件将有助于深入理解和实践上述知识点。 总的来说,C#操作浏览器DOM对象涉及了Web...

    学习中写的C#操作xml文件工程,用的原生xml相关类

    在本项目中,我们主要探讨的是如何使用C#语言来操作XML文件,特别是利用.NET框架提供的原生XML类库。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,常用于应用程序之间的数据交换。在C#...

    使用XMLDocument操作xml文件.zip_PMF_c# xml_xml

    本教程将重点介绍如何在C#环境中使用XMLDocument类来操作XML文件,以及采用SAX(Simple API for XML)解析XML文件的方法。 XMLDocument是.NET Framework中System.Xml命名空间下的一个类,它是处理XML文档的主要对象...

Global site tag (gtag.js) - Google Analytics