C# xml文件读取与修改

c#读写xml文件
已知有一个XML文件(bookstore.xml)如下:

Code<?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>节点:

CodeXmlDocument 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");

结果为:

Code<?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>的文本修改为“亚胜”。

Code

最后结果为:

Code<?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">节点。

CodeXmlNodeList 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");
最后结果为:

Code<?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);//显示子节点点文本    }}
时间: 2024-08-17 11:15:00

C# xml文件读取与修改的相关文章

配置文件——App.config文件读取和修改

作普通的xml文件读取的话,首先就要知道怎么寻找文件的路径.我们知道一般配置文件就在跟可执行exe文件在同一目录下,且仅仅在名称后面添加了一个.config 因此,可以用Application.ExecuteablePath+".cofig"的方式来获得,不过更加推荐使用AppDomain.CurrentDomain.SetupInformation.ConfigurationFile这句话来直接获取当前程序的配置文件的位置,具体原因,后面再叙述. 现在回过头还是看上面的这个函数,看它

php xml 文件读取 XMLReader

php xml 文件读取 <?php /** $xmlString = '<xml> <persons count="10"> <person username="username1" age="20">this is username1 description</person> <person username="username2" age="20&qu

javascript读取xml文件读取节点数据的例子

分享下用javascript读取xml文件读取节点数据方法. 读取的节点数据,还有一种情况是读取节点属性数据. <head> <title></title> <script type="text/javascript"> var objLength = null; var xmlHttp; var strurl = ""; function ajaxrequst() { if (window.ActiveXObject

【U1结业机试题】新闻内容管理系统:解析XML文件读取Html模版生成网页文件

一.作业要求: 1.在xml文件中创建新闻节点news,包含标题.作者.日期.正文等信息 2.创建HTML模板文件 3.读取xml中所有新闻信息,并使用新闻信息替换模板文件中占位符,从而为每一条新闻生成一个HTML静态页面 二.参考思路: 阶段1:创建xml 添加测试记录不少于三条 阶段2:创建HTML模板文件 阶段3:从xml读取新闻信息,保存在泛型集合中 阶段4:读取模板文件 训练要点: Reader类 需求说明: 读取HTML模板文件news.template,为使用新闻信息替换其中的占位

java实现xml文件读取并保存到对象

首先浅聊一下解析xml的四种方式: 1.DOM方式:有缺点但是这个缺点却也是他的优点.下面详细介绍: 以树形的层次结构组织节点或信息片断集合,可以获得同一个文档中的多处不同数据.使用起来简单. 优点是:可以获得同一个文档中的多处不同数据,使用起来简单. 缺点是:需要加载整个xml文件,这对内存和资源有一定的消耗,如果是小型的xml文件可以尝试用 DOM方式解析. 经测试当用DOM方式读取大小为10M的文件时, 将会产生内存溢出异常. 2.SAX方式:在读取数据时检查数据,不用解析整个文档,因此不

php关于xml文件的操作--修改和删除

继续以昨天创建的stu.xml文件为目标进行操作. 1.修改 明确几个操作: A:修改节点->可以用替换replaceChild: B:修改节点值->nodeValue是可以直接赋值的: C:修改属性值->setAttribute(),面向对象的类中经常会有这种setXXX.getXXX的操作. 先看一下stu.xml文件的内容: [[email protected] xml]# cat stu.xml <?xml version="1.0" encoding=

游戏场景需要是可配置的:AssetManager工具类和xml文件读取

我们已经知道,游戏得有个活动场景(每个场景是个可点击的button控件),并且可以通过代码生成控件的方式把活动场景进行多行多列的排列.见上篇:https://www.cnblogs.com/zzqm-gamelife/p/10254466.html 但是没有解决这样的问题: 1.场景名称需要自定义 2.版本更新,今天要加个"蟠桃园"的地图,明天活动,又加个"九重妖塔". 如果每次加个地图就要改一次代码,太麻烦了.我们选择用xml文件来做配置(PS,有条件的可以用服务

XML文件读取方式

XmlDocument将XML文件视为树状结构,它装载XML文档并在内存中构建该文档的树状结构.XmlDocument来代表了一个XML文档,它支持对于XMl文档树的遍历,插入,删除,和替换. XmlDocumet 类允许通过三种方式打开一个Xml文档 1.指定XMl文件URL 2.包含XML文档数据的文件流对象 3. 包含XML文档数据的字符串 string textpath = @"C:\Test.xml"; try { XmlDocument doc = new XmlDocum

关于XML的读取,添加,修改,删除

----- 转载CSDN,觉得作者写挺好,记录这里当做笔记学习,且对应方法msdn查了一下,添加了注释更加透彻明白,有什么不对,请留言指教: 其中, XmlNode 继承于 IConeable,IEnumerable,IXPathNavigable; XmlDocument 继承于XmlNode; XmlElement 继承于XmlLinkedNode,而XmlLinkedNode 继承于XmlNode; XML文档 1 <?xml version='1.0' encoding='gb2312'