`
isiqi
  • 浏览: 16759143 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

在C#中操作XML

阅读更多
我用的是一种很笨的方法,但可以帮助初学者了解访问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 读取、生成,WEBSERVICE接口

    读取XML节点值,可以使用`SelectSingleNode`或`SelectNodes`方法,如: ```csharp XmlNode node = xmlDoc.SelectSingleNode("//节点路径"); string value = node.InnerText; ``` 2. **C#操作XML:生成** 要...

    C# XML文件读取示例

    本示例将详细介绍如何在C#中读取XML文件,帮助开发者理解并掌握相关技术。 首先,让我们了解XML文件的基本结构。XML文件通常包含元素(Element)、属性(Attribute)、文本内容(Text Content)等组成部分。元素是...

    C#读取XML 的节点,以及属性

    本篇文章将深入探讨如何在C#中操作XML文件,尤其是读取XML节点和属性。 首先,我们来了解基本的XML结构。XML文档由一系列元素组成,每个元素可以有零个或多个子元素,以及属性。元素通过开始标签(如 `&lt;element&gt;`)...

    C#读取XML教程和例子(有代码)

    在C#中读取XML文件,你可以选择直接操作XML节点,如使用`XmlDocument`或`XmlNodeReader`,或者通过序列化将XML转换为对象,便于直接操作。每种方法都有其适用场景,直接操作XML节点适合简单的需求,而序列化则更适用...

    用C#快速读取XML文件,并遍历

    标题"用C#快速读取XML文件,并遍历"所涉及的核心知识点包括: 1. **System.Xml命名空间**:C#中处理XML的主要工具位于System.Xml命名空间下,包括XmlDocument、XmlNode、XmlElement等类,它们提供了读取、写入和操作...

    C#中读取XML中数据的2种方法

    本文将详细介绍两种在C#中读取XML数据的方法,一种是从XML字符串,另一种是从XML文件。 首先,我们来看第一种方法:从XML字符串读取数据。在C#中,我们可以使用`DataSet`类的`ReadXml`函数来实现这一目标。以下是一...

    C#操作xml文件读写

    首先,让我们了解在C#中读取XML文件的基本步骤。使用`System.Xml`命名空间中的`XmlDocument`类可以实现这一功能。以下是一个简单的示例: ```csharp using System; using System.Xml; class Program { static ...

    C# winfrom操作xml_读写修改xml及写入数据库

    首先,让我们了解如何在C#中读取XML文件。使用`System.Xml`命名空间中的`XmlDocument`类,我们可以加载XML文件并访问其内容。以下是一个简单的示例: ```csharp using System.Xml; // 加载XML文件 XmlDocument doc...

    C#读取Xml.

    本篇文章将详细探讨如何在C#中读取XML文件,并生成Web标签。 首先,我们需要了解XML的基本结构。XML文档由元素、属性、文本内容以及命名空间等组成。每个XML文件都有一个根元素,其他的元素嵌套在其下。C#提供了...

    C#读取XML配置文件

    本篇文章将深入探讨如何在C#中读取XML配置文件。 首先,让我们了解XML配置文件的基本结构。一个简单的XML配置文件可能如下所示: ```xml &lt;?xml version="1.0" encoding="utf-8"?&gt; ``` 在C#中,读取XML...

    C# WinForm 读写XML文件

    在C# WinForm应用程序中,读写XML文件是常见的数据操作任务。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,它结构清晰、易于解析且跨平台。下面将详细介绍如何使用C# WinForm来实现XML...

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

    在IT行业中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它结构清晰、易于解析,常用于存储和传输...以上就是关于“C#读取XML文件并写入数据库”的详细讲解,希望对您在进行相关开发工作时有所帮助。

    在C#中使用XML教程

    本教程将引导你快速掌握在C#环境中如何使用XML进行读写操作,特别适合初学者即学即用。 ## 一、XML的基本概念 XML是一种自描述的语言,它通过标签来定义数据的结构和内容。例如: ```xml 编程入门 张三 ...

    C#操作XML,读取XML到数据库和增删改

    在这个示例中,我们学习了如何使用 C# 语言操作 XML 文件,读取 XML 文件的内容,并将其存储到数据库中。同时,我们也学习了如何向 XML 文件添加子节点。这些技术可以广泛应用于实际项目中,使得数据的存储和读取...

    c#读取xml文件增加结点删除节点并在listview中显示xml文件内容

    本文将详细介绍如何使用C#来读取XML文件、添加和删除节点,并将XML文件内容显示在ListView控件中。 首先,我们需要引入System.Xml命名空间,它包含了处理XML文档所需的所有类和方法。在C#代码中,可以使用以下语句...

    C#中XML文件的树形显示

    本文将深入探讨如何在C#中实现XML文件的树形显示,以及如何进行节点的插入和删除操作。 首先,我们需要了解如何在C#中加载XML文件。这通常通过使用`System.Xml`命名空间中的`XmlDocument`类来完成。以下是一个简单...

    C中读取XML文件

    在本篇文章中,我们将深入探讨如何在C#中读取XML文件,解析其内容,并进行必要的数据操作。 ### C#中读取XML文件 #### 1. 获取XML DataSet 在C#中,`DataSet`是一种用于存储从数据库或XML文件中获取的数据的内存...

    深入理解C#中的XML,完整扫描版

    《深入理解C#中的XML》主要讲述C#软件开发中的XML的功能,全书共10章,分别介绍了XML基础语法、应用文档对象模型、用XSLT转换XML文档、利用DTD和XSDSchema验证XML文档、XML文档的读取、ADO.NET的相关知识、....

    C# LinqXML使用LINQ技术对XML文件进行读取

    在处理XML文档时,LINQ to XML(也称为LinqXML)是一个非常实用的API,它提供了面向对象的方式来创建、操作和读取XML文档。本文将详细介绍如何使用C#的LinqXML技术对XML文件进行读取。 首先,我们需要引入必要的...

    C# DataSet读取XML

    本篇文章将深入探讨如何利用C#中的DataSet来读取XML文件,并将其内容展示在GridView控件中。 首先,XML(Extensible Markup Language)是一种轻量级的数据交换格式,常用于存储和传输结构化数据。DataSet可以解析...

Global site tag (gtag.js) - Google Analytics