我用的是一种很笨的方法,但可以帮助初学者了解访问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节点值,可以使用`SelectSingleNode`或`SelectNodes`方法,如: ```csharp XmlNode node = xmlDoc.SelectSingleNode("//节点路径"); string value = node.InnerText; ``` 2. **C#操作XML:生成** 要...
本示例将详细介绍如何在C#中读取XML文件,帮助开发者理解并掌握相关技术。 首先,让我们了解XML文件的基本结构。XML文件通常包含元素(Element)、属性(Attribute)、文本内容(Text Content)等组成部分。元素是...
本篇文章将深入探讨如何在C#中操作XML文件,尤其是读取XML节点和属性。 首先,我们来了解基本的XML结构。XML文档由一系列元素组成,每个元素可以有零个或多个子元素,以及属性。元素通过开始标签(如 `<element>`)...
在C#中读取XML文件,你可以选择直接操作XML节点,如使用`XmlDocument`或`XmlNodeReader`,或者通过序列化将XML转换为对象,便于直接操作。每种方法都有其适用场景,直接操作XML节点适合简单的需求,而序列化则更适用...
标题"用C#快速读取XML文件,并遍历"所涉及的核心知识点包括: 1. **System.Xml命名空间**:C#中处理XML的主要工具位于System.Xml命名空间下,包括XmlDocument、XmlNode、XmlElement等类,它们提供了读取、写入和操作...
本文将详细介绍两种在C#中读取XML数据的方法,一种是从XML字符串,另一种是从XML文件。 首先,我们来看第一种方法:从XML字符串读取数据。在C#中,我们可以使用`DataSet`类的`ReadXml`函数来实现这一目标。以下是一...
首先,让我们了解在C#中读取XML文件的基本步骤。使用`System.Xml`命名空间中的`XmlDocument`类可以实现这一功能。以下是一个简单的示例: ```csharp using System; using System.Xml; class Program { static ...
首先,让我们了解如何在C#中读取XML文件。使用`System.Xml`命名空间中的`XmlDocument`类,我们可以加载XML文件并访问其内容。以下是一个简单的示例: ```csharp using System.Xml; // 加载XML文件 XmlDocument doc...
本篇文章将详细探讨如何在C#中读取XML文件,并生成Web标签。 首先,我们需要了解XML的基本结构。XML文档由元素、属性、文本内容以及命名空间等组成。每个XML文件都有一个根元素,其他的元素嵌套在其下。C#提供了...
本篇文章将深入探讨如何在C#中读取XML配置文件。 首先,让我们了解XML配置文件的基本结构。一个简单的XML配置文件可能如下所示: ```xml <?xml version="1.0" encoding="utf-8"?> ``` 在C#中,读取XML...
在C# WinForm应用程序中,读写XML文件是常见的数据操作任务。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,它结构清晰、易于解析且跨平台。下面将详细介绍如何使用C# WinForm来实现XML...
在IT行业中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它结构清晰、易于解析,常用于存储和传输...以上就是关于“C#读取XML文件并写入数据库”的详细讲解,希望对您在进行相关开发工作时有所帮助。
本教程将引导你快速掌握在C#环境中如何使用XML进行读写操作,特别适合初学者即学即用。 ## 一、XML的基本概念 XML是一种自描述的语言,它通过标签来定义数据的结构和内容。例如: ```xml 编程入门 张三 ...
在这个示例中,我们学习了如何使用 C# 语言操作 XML 文件,读取 XML 文件的内容,并将其存储到数据库中。同时,我们也学习了如何向 XML 文件添加子节点。这些技术可以广泛应用于实际项目中,使得数据的存储和读取...
本文将详细介绍如何使用C#来读取XML文件、添加和删除节点,并将XML文件内容显示在ListView控件中。 首先,我们需要引入System.Xml命名空间,它包含了处理XML文档所需的所有类和方法。在C#代码中,可以使用以下语句...
本文将深入探讨如何在C#中实现XML文件的树形显示,以及如何进行节点的插入和删除操作。 首先,我们需要了解如何在C#中加载XML文件。这通常通过使用`System.Xml`命名空间中的`XmlDocument`类来完成。以下是一个简单...
在本篇文章中,我们将深入探讨如何在C#中读取XML文件,解析其内容,并进行必要的数据操作。 ### C#中读取XML文件 #### 1. 获取XML DataSet 在C#中,`DataSet`是一种用于存储从数据库或XML文件中获取的数据的内存...
《深入理解C#中的XML》主要讲述C#软件开发中的XML的功能,全书共10章,分别介绍了XML基础语法、应用文档对象模型、用XSLT转换XML文档、利用DTD和XSDSchema验证XML文档、XML文档的读取、ADO.NET的相关知识、....
在处理XML文档时,LINQ to XML(也称为LinqXML)是一个非常实用的API,它提供了面向对象的方式来创建、操作和读取XML文档。本文将详细介绍如何使用C#的LinqXML技术对XML文件进行读取。 首先,我们需要引入必要的...
本篇文章将深入探讨如何利用C#中的DataSet来读取XML文件,并将其内容展示在GridView控件中。 首先,XML(Extensible Markup Language)是一种轻量级的数据交换格式,常用于存储和传输结构化数据。DataSet可以解析...