c#读取xml操作
1/定义一个XmlDocument对象xDoc
2/通过XmlDocument来load需要读取的xml文件
3/通过XmlDocument的SelectSingleNode来找到节点,并把节点转换为XmlElement
4/XmlElement 可以对节点的属性进行操作
<?xml version="." encoding="gb"?>
<bookstore>
<book genre="fantasy" ISBN="--">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>.</price>
</book>
</bookstore>
1、往<bookstore>节点中插入一个<book>节点:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
XmlElement xe=xmlDoc.CreateElement("book");//创建一个<book>节点
xe.SetAttribute("genre","李小龙");//设置该节点genre属性
xe.SetAttribute("ISBN","--");//设置该节点ISBN属性
XmlElement xesub=xmlDoc.CreateElement("title");
xesub.InnerText="CS从入门到精通";//设置文本节点
xe.AppendChild(xesub);//添加到<book>节点中
XmlElement xesub=xmlDoc.CreateElement("author");
xesub.InnerText="候捷";
xe.AppendChild(xesub);
XmlElement xesub=xmlDoc.CreateElement("price");
xesub.InnerText=".";
xe.AppendChild(xesub);
root.AppendChild(xe);//添加到<bookstore>节点中
xmlDoc.Save("bookstore.xml");
//================
结果为:
<?xml version="." encoding="gb"?>
<bookstore>
<book genre="fantasy" ISBN="--">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>.</price>
</book>
<book genre="李小龙" ISBN="--">
<title>CS从入门到精通</title>
<author>候捷</author>
<price>.</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 xn in nls)//遍历
{
XmlElement xe=(XmlElement)xn;//转换类型
if(xe.Name=="author")//如果找到
{
xe.InnerText="亚胜";//则修改
break;//找到退出来就可以了
}
}
break;
}
}
xmlDoc.Save("bookstore.xml");//保存。
//=================
最后结果为:
<?xml version="." encoding="gb"?>
<bookstore>
<book genre="fantasy" ISBN="--">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>.</price>
</book>
<book genre="update李小龙" ISBN="--">
<title>CS从入门到精通</title>
<author>亚胜</author>
<price>.</price>
</book>
</bookstore>
3、删除 <book genre="fantasy" ISBN="--">节点的genre属性,删除 <book genre="update李赞红" ISBN="--">节点。
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="." encoding="gb"?>
<bookstore>
<book ISBN="--">
<title>Oberon's Legacy</title>
<author>Corets, Eva</author>
<price>.</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 xnff=xe.ChildNodes;
foreach(XmlNode xn in xnff)
{
Console.WriteLine(xn.InnerText);//显示子节点点文本
}
}
c#读取xml操作的更多相关文章
- XML格式示例 与 XML操作(读取)类封装
header('Content-Type: text/xml'); <?xml version="1.0" encoding="utf-8" standa ...
- Qt XML读取写入操作
XML(eXtensible Markup Language,可扩展标记语言)是普通用于数据交换和数据存储的一种多用途文本文件格式: SVG(可标量矢量图形)XML格式,QtSvg模块提供了可用于载入 ...
- PHP下进行XML操作(创建、读取)
PHP下可以使用DOMDocument类对XML或者HTML文件进行读写操作 更为简单的方法使用simpleXML类操作XML DOM节点分为 元素节点 属性节点 值节点 注释节点 根节点(docum ...
- java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...
- PowerShell 数组以及XML操作
PowerShell基础 PowerShell数组操作 将字符串拆分成数据的操作 cls #原始字符串 $str = "abc,def,ghi,mon" #数据定义 #$StrAr ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
- C#中常用的读取xml的几种方法(转)
本文完全来源于http://blog.csdn.net/tiemufeng1122/article/details/6723764,仅作个人学习之用. XML文件是一种常用的文件格式,例如WinFor ...
- C#读取XML文件的基类实现
刚到新单位,学习他们的源代码,代码里读写系统配置文件的XML代码比较老套,直接写在一个系统配置类里,没有进行类的拆分,造成类很庞大,同时,操作XML的读写操作都是使用SetAttribute和node ...
- XML操作类
using System; using System.Data; using System.IO; using System.Xml; namespace DotNet.Utilities { ...
随机推荐
- 383. Ransom Note【easy】
383. Ransom Note[easy] Given an arbitrary ransom note string and another string containing letters f ...
- Unity学习笔记 - UI System(一)
转载请注明出处: EnigmaJJ http://www.cnblogs.com/twjcnblog/p/5850648.html 术语 Canvas是Unity的原生组件,Unity的渲染系统使用C ...
- 从C#到Swift,Swift学习笔记
最近在学习IOS,我一直使用的是C#来开发,对Java .C.C++也有一定的了解.最近入手了一台Air,想试着学习IOS开发. 如果你不是C#和Java阵营的,如果你对Swift没有兴趣,就不用往下 ...
- js jQuery函数 $.ajax()
$.ajax() //$表示是jQuery cache: 要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中 ...
- Easyui tree方法扩展getImperfectCheck
$.extend($.fn.tree.methods, { getImperfectCheck : function (jq) { var checked = jq.find("span.t ...
- dm8148 开发只boot启动参数vram=128简介
显存 全称显示内存,即显示卡专用内存.显存对于显卡就好比内存对于整台电脑,地位非常重要,它负责存储显示芯片需要处理的各种数据.显存容量的大小.性能的高低,直接影响着电脑的显示效果.目前,工作站显卡常用 ...
- 2015-2016ACM-ICPC NEER northern-subregional-contest C Concatenation
可以在这里提交: http://codeforces.com/gym/100801 题目大意: 给出两个由小写字母组成的字符串S,T,从S中取一个非空前缀,从T中取一个非空后缀,拼接成一个新的字符串. ...
- ExtJs学习-搭建开发环境
Extjs是一个非常棒的ajax框架,可以用来开发十分绚丽外观的客户端框架,能使B/S框架更加具有活力.它是一个用javascript编写的框架,与后台技术无关的ajax框架.因此,可以把ExtJs使 ...
- Redis 在windows中启动
redis-server.exe redis.windows.conf 或 redis-server.exe redis.conf
- VMware Workstation网卡不启动
故障原因:虚拟机安装完成后,默认网络配置为”NAT”,对应真机的系统服务为“VMware NAT Service”默认情况下该服务启动类型为自动,状态为启动,若该服务未能正常启动则会导致如上报错,手动 ...