`

XML的简单读取与写入

阅读更多
作者:网际浪子专栏(曾用名littlehb)  http://blog.csdn.net/littlehb/

我用的是一种很笨的方法,但可以帮助初学者了解访问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);//显示子节点点文本
    }
   }

分享到:
评论

相关推荐

    从XML读取、写入配置

    从XML读取、写入配置 许多程序在使用,向一个输入框中输入了某些信息;即使关闭了程序,当再次打开时,你仍然可以看见输入框中的信息没有消失,被保存了下来.这样为程序的使用提供了极大的方便。下面有一个很简单的...

    C# 读取XML文件并写入Excel表格

    本项目涉及的核心技术是“读取XML文件”和“写入Excel表格”。XML(Extensible Markup Language)是一种用于存储和传输数据的标准化格式,而Excel则是Microsoft Office套件中的一个组件,用于创建、编辑和分析数据。...

    C#XML读取写入例子

    本教程将深入探讨C#中如何进行XML的读取与写入操作。 一、XML的基础知识 XML是一种结构化的文本数据格式,具有自描述性,以标签(Tag)形式定义元素。例如,以下是一个简单的XML文档: ```xml &lt;?xml version="1.0...

    XML和属性文件读取和写入

    ### XML读取 在Java中,可以使用DOM(Document Object Model)、SAX(Simple API for XML)和StaX(Streaming API for XML)等API来解析XML。DOM将整个XML文档加载到内存中,形成一个树形结构,适合小型XML文件。...

    Unity实现读取XML和数据写入到XML

    本项目实现了在Unity中对XML文件的读取和写入操作,这涉及到Unity的C#编程以及XML的序列化和反序列化技术。 XML序列化是指将对象的状态转换为XML文档的过程,而反序列化则是将XML文档恢复为对象的过程。在Unity中,...

    从xml文档中读取和写入数据库的例题

    `OutSQLandInputSQL`可能是这个例题中的关键代码文件,它可能包含从XML读取数据并写入数据库的实现(`OutSQL`),以及从数据库查询数据并输出到XML的实现(`InputSQL`)。这两个部分通常涉及上述提到的XML解析、...

    dom读取xml与写入xml

    这个模型由节点构成,包括元素、属性、文本等,使得程序员可以通过JavaScript、Java、Python等语言对XML文档进行读取和写入操作。本文将深入探讨DOM解析XML的原理和实践,并通过源码分析来揭示其实现细节。 首先,...

    C#读取XML文件并写入数据库

    下面,我们将详细介绍三种使用C#读取XML文件并将其写入数据库的方法。 1. **使用XmlReader类逐行读取并写入** - `XmlReader` 是一个高效的流式读取器,不占用大量内存。通过创建`XmlReader`实例,我们可以逐个节点...

    读取目录中的xml文件并写入Excel

    这个例子中,我们要讨论的是如何使用C#编程语言,结合Aspose库,来读取一个目录中的多个XML文件并将其中的数据写入Excel工作簿。这个过程可以分为几个关键步骤,我们将详细探讨这些步骤以及涉及的技术知识点。 首先...

    C#Xml的写入和读取

    【C# XML的写入和读取】 XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据存储和交换。在C#中,我们可以使用`System.Xml`命名空间提供的类来读取和写入XML文件。下面我们将详细介绍如何...

    VB.NET 对XML文件读取和写入功能示例.rar

    此为一个VB.NET环境的XML文件操作示例,演示了两个基本的XML操作功能,读取和写入,在读取后,并对XML数据进行格式化处理,并将其显示在DataGridView控件中。同时还配合数据库,实现了XML数据对数据库数据的对应操作...

    xml.rar_msxml_pudn msxml_xml_xml写入_读取 XML 文件

    在本压缩包"xml.rar"中,包含了一些关于如何使用MSXML库进行XML文件读取和写入的示例资源。 MSXML(Microsoft XML Core Services)是微软提供的一个组件,它允许开发者在Windows环境中处理XML文档。MSXML提供了多种...

    c#_XML读取_写入_修改文件.rar

    本文将详细介绍如何使用C#进行XML文件的读取、写入和修改操作。 首先,让我们探讨XML文件的读取。在C#中,可以使用`System.Xml`命名空间下的`XmlDocument`类来实现这一功能。例如,Ex15_02读取XML文件示例中,你...

    使用qt读取xml文件并写入另一个文件

    // 创建XML读取器 QXmlStreamReader reader(&inputFile); while (!reader.atEnd()) { if (reader.hasError()) { qDebug() &lt;&lt; "XML解析错误:" (); break; } QXmlStreamToken token = reader.readNext(); ...

    java读取和写入xml文件

    JAXB是Java平台的标准部分,用于对象与XML之间的自动绑定。它将XML数据转换为Java对象,反之亦然,简化了数据交换。 - 优点:自动化程度高,易于使用,适合对象和XML之间的转换。 - 缺点:可能产生大量冗余代码,对...

    QT解析xml文档 读取写入

    使用`QDomDocument::parse()`函数或者`QFile`与`QTextStream`结合,读取XML文件内容并解析成QDomDocument对象。 ```cpp QFile file("path_to_xml_file.xml"); file.open(QIODevice::ReadOnly | QIODevice::Text); ...

    asp.net 读取XML文件中的数据和写入数据库实例

    在这个实例中,我们将探讨如何在ASP.NET环境中读取XML文件中的数据,并将其写入数据库,以及反过来,如何从数据库中检索数据并更新XML文件。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,它具有良好的...

    解析XML文件(读取,写入,删除,更新)

    解析XML文件(读取,写入,删除,更新)

    读取xml和写入xml文件开源库

    在IT行业中,理解和掌握XML的读取与写入是必要的技能之一。针对你的需求,我们将详细介绍如何使用开源库tinyxml进行XML文件的操作。 TinyXML是一个小型、轻量级的C++库,它提供了读取和写入XML文件的功能。这个库...

    dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中

    它提供了灵活且高效的API,使得XML的解析、创建、修改变得更加简单。在这个场景中,我们关注的是如何使用DOM4J以String的形式读取XML内容,然后将String的值赋给XML中的特定节点,最后将更新后的内容写回XML文件。...

Global site tag (gtag.js) - Google Analytics