作者:网际浪子专栏(曾用名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文件”和“写入Excel表格”。XML(Extensible Markup Language)是一种用于存储和传输数据的标准化格式,而Excel则是Microsoft Office套件中的一个组件,用于创建、编辑和分析数据。...
本教程将深入探讨C#中如何进行XML的读取与写入操作。 一、XML的基础知识 XML是一种结构化的文本数据格式,具有自描述性,以标签(Tag)形式定义元素。例如,以下是一个简单的XML文档: ```xml <?xml version="1.0...
### XML读取 在Java中,可以使用DOM(Document Object Model)、SAX(Simple API for XML)和StaX(Streaming API for XML)等API来解析XML。DOM将整个XML文档加载到内存中,形成一个树形结构,适合小型XML文件。...
本项目实现了在Unity中对XML文件的读取和写入操作,这涉及到Unity的C#编程以及XML的序列化和反序列化技术。 XML序列化是指将对象的状态转换为XML文档的过程,而反序列化则是将XML文档恢复为对象的过程。在Unity中,...
`OutSQLandInputSQL`可能是这个例题中的关键代码文件,它可能包含从XML读取数据并写入数据库的实现(`OutSQL`),以及从数据库查询数据并输出到XML的实现(`InputSQL`)。这两个部分通常涉及上述提到的XML解析、...
这个模型由节点构成,包括元素、属性、文本等,使得程序员可以通过JavaScript、Java、Python等语言对XML文档进行读取和写入操作。本文将深入探讨DOM解析XML的原理和实践,并通过源码分析来揭示其实现细节。 首先,...
下面,我们将详细介绍三种使用C#读取XML文件并将其写入数据库的方法。 1. **使用XmlReader类逐行读取并写入** - `XmlReader` 是一个高效的流式读取器,不占用大量内存。通过创建`XmlReader`实例,我们可以逐个节点...
这个例子中,我们要讨论的是如何使用C#编程语言,结合Aspose库,来读取一个目录中的多个XML文件并将其中的数据写入Excel工作簿。这个过程可以分为几个关键步骤,我们将详细探讨这些步骤以及涉及的技术知识点。 首先...
【C# XML的写入和读取】 XML(Extensible Markup Language)是一种用于标记数据的语言,广泛应用于数据存储和交换。在C#中,我们可以使用`System.Xml`命名空间提供的类来读取和写入XML文件。下面我们将详细介绍如何...
此为一个VB.NET环境的XML文件操作示例,演示了两个基本的XML操作功能,读取和写入,在读取后,并对XML数据进行格式化处理,并将其显示在DataGridView控件中。同时还配合数据库,实现了XML数据对数据库数据的对应操作...
在本压缩包"xml.rar"中,包含了一些关于如何使用MSXML库进行XML文件读取和写入的示例资源。 MSXML(Microsoft XML Core Services)是微软提供的一个组件,它允许开发者在Windows环境中处理XML文档。MSXML提供了多种...
本文将详细介绍如何使用C#进行XML文件的读取、写入和修改操作。 首先,让我们探讨XML文件的读取。在C#中,可以使用`System.Xml`命名空间下的`XmlDocument`类来实现这一功能。例如,Ex15_02读取XML文件示例中,你...
// 创建XML读取器 QXmlStreamReader reader(&inputFile); while (!reader.atEnd()) { if (reader.hasError()) { qDebug() << "XML解析错误:" (); break; } QXmlStreamToken token = reader.readNext(); ...
JAXB是Java平台的标准部分,用于对象与XML之间的自动绑定。它将XML数据转换为Java对象,反之亦然,简化了数据交换。 - 优点:自动化程度高,易于使用,适合对象和XML之间的转换。 - 缺点:可能产生大量冗余代码,对...
使用`QDomDocument::parse()`函数或者`QFile`与`QTextStream`结合,读取XML文件内容并解析成QDomDocument对象。 ```cpp QFile file("path_to_xml_file.xml"); file.open(QIODevice::ReadOnly | QIODevice::Text); ...
本示例主要探讨如何在PowerBuilder 9(PB9)中进行XML文件的读取和写入操作。 首先,我们需要了解PowerBuilder中的XML支持。PB9引入了对XML的支持,包括XMLDocument对象和DOM解析器,使得开发者能够方便地与XML数据...
在这个实例中,我们将探讨如何在ASP.NET环境中读取XML文件中的数据,并将其写入数据库,以及反过来,如何从数据库中检索数据并更新XML文件。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,它具有良好的...
解析XML文件(读取,写入,删除,更新)
在IT行业中,理解和掌握XML的读取与写入是必要的技能之一。针对你的需求,我们将详细介绍如何使用开源库tinyxml进行XML文件的操作。 TinyXML是一个小型、轻量级的C++库,它提供了读取和写入XML文件的功能。这个库...