已知有一个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文件,通过以下知识点来理解并实现这一过程。 1. **XML基础知识**: - XML的结构:XML文件由元素、属性、文本内容和命名空间等构成,遵循严格的规则。 - XML文档对象模型(DOM...
在提供的实验1文件中,可能包含了一个示例XML文件和相关的C#代码,用于演示如何根据属性检索XML节点。通过分析这些代码,你可以更深入地理解这个过程,并将这些知识应用到实际项目中。对于初学者而言,理解并掌握...
本文将详细介绍字符串转化为XML文件的知识点,包括XML文件的基本结构、StringBuilder类的使用、XML文档对象模型(DOM)、XML文件的保存等。 XML文件的基本结构 XML(Extensible Markup Language)是一种标记语言,...
在C#中,处理XML文件主要涉及.NET Framework提供的System.Xml命名空间中的类和方法。下面我们将深入探讨一些关键的C# XML操作知识点: 1. **读取XML文件**:可以使用`XmlDocument`类加载XML文件。例如: ```csharp...
在C#编程环境中,XML...以上就是C#中读取XML文件的四种常见方法。选择哪种方法取决于具体的需求,如文件大小、性能要求以及是否需要对XML进行复杂的查询操作。在实际开发中,应根据项目需求灵活选择并优化代码。
本文将深入探讨如何使用C#进行XML文件的操作,包括读取、写入、修改和解析XML文档。 首先,我们需要了解C#中的System.Xml命名空间,它提供了处理XML文档的各种类。最常用的是XmlDocument和XmlNode类,它们允许我们...
DOM解析器的优点是操作灵活,可以随时访问任何部分的文档,但缺点是占用内存大,对于大型XML文件,可能会导致性能问题。在C#中,`System.Xml`命名空间提供了对DOM的支持,如`XmlDocument`类用于加载和操作XML文档。 ...
本篇文章将详细阐述如何在C#中进行XML文件的读写操作,包括基本概念、常用API以及实例演示。 首先,我们需要了解XML的基本结构。XML是一种自描述的语言,通过元素(Element)、属性(Attribute)和值(Value)来...
例如,你可以通过`Load`方法加载XML文件,然后使用`SelectNodes`或`SelectSingleNode`方法来查询特定节点。 2. **写入XML** `XmlTextWriter`类允许程序员创建新的XML文件或向现有文件追加内容。通过设置属性如编码...
5. **使用XmlSerializer**:如果你的XML文件对应于一个特定的C#类结构,可以使用XmlSerializer进行序列化和反序列化操作,将XML数据直接转换为对象。首先,定义一个与XML结构匹配的类,然后使用以下代码反序列化: ...
C# 操作 XML 技术详解 XML 作为一个非常重要的纯文本格式已经进入了编程的很多领域,作为一个面向应用层面的 C# 也一样在很多领域离不开 XML。但是,C# 在很多方面对 XML 做了写封装,以至于很多操作 XML 的代码,...
本教程将详细介绍如何使用C#来操作XML文件,包括读取、写入、修改和解析XML文档。 1. XML的基本结构: - XML文档由元素构成,元素是XML的基本构建块,如`<element>content</element>`。 - 属性用于为元素提供附加...
1. **XmlDocument**:这是处理XML文档的核心类,可以加载XML文件,进行DOM(Document Object Model)操作,如添加、删除、修改元素。 2. **XmlNode** 和其子类:XmlNode代表XML文档中的一个节点,如元素...
压缩包内的"C#操作Xml文件"可能包含了使用这些技术的具体代码示例,包括如何创建XML文档、添加元素、读取元素值、修改元素属性、删除节点以及序列化和反序列化XML等操作。通过学习这些示例,开发者可以深入理解如何...
根据给定文件中的标题、描述、标签以及部分内容,可以总结并深入探讨以下关于C#中XML解析的关键知识点: ### C#中的XML解析方式 #### 1. XML Text Reader(流式解析) - **简介**:在.NET框架中,`XMLTextReader`...
在"XmlDom.cs"文件中,我们可能看到的是C#代码,它展示了如何加载XML文件到DOM树,遍历树以读取或修改数据,以及如何保存更改后的文档。以下是一些基本的DOM操作步骤: 1. 加载XML文档:首先,我们需要使用`Xml...
这篇教程或资料集“xml.rar”似乎是一个关于使用C#操作XML文件的综合指南,特别关注了C#与XML的结合以及如何在ListView控件中展示XML数据。 首先,我们来看看C#处理XML的基本方法。C#提供了System.Xml命名空间,...
文件名为“BroswerTest”的压缩包可能包含了相关的示例代码或测试用例,用于演示如何在C#中操作浏览器的DOM对象。解压并研究这些文件将有助于深入理解和实践上述知识点。 总的来说,C#操作浏览器DOM对象涉及了Web...
在本项目中,我们主要探讨的是如何使用C#语言来操作XML文件,特别是利用.NET框架提供的原生XML类库。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准化格式,常用于应用程序之间的数据交换。在C#...
本教程将重点介绍如何在C#环境中使用XMLDocument类来操作XML文件,以及采用SAX(Simple API for XML)解析XML文件的方法。 XMLDocument是.NET Framework中System.Xml命名空间下的一个类,它是处理XML文档的主要对象...