C#操作XML方法集合
一前言
先来了解下操作XML所涉及到的几个类及之间的关系 如果大家发现少写了一些常用的方法,麻烦在评论中指出,我一定会补上的!谢谢大家 * 1 XMLElement主要是针对节点的一些属性进行操作 * 2 XMLDocument主要是针对节点的CUID操作
* 3 XMLNode为抽象类,做为以上两类的基类,提供一些操作节点的方法
清楚了以上的关系在操作XML时会更清晰一点
二具体操作(C#)
以下会对Xml的结点与属性做增删改查的操作也满足了实际工作中的大部分情况 先构造一棵XML树如下,其中也涉及到了写入xml文档的操作
1publicvoidCreatXmlTree(stringxmlPath) 2 {
3XElementxElement = newXElement( 4newXElement(\, 5newXElement(\,
6newXElement(\, \入门\, newXAttribute(\, \)), 7newXElement(\, \, newXAttribute(\, \)), 8newXElement(\, \上海\),
9newXElement(\, DateTime.Now.ToString(\)) 10 ), 11newXElement(\,
12newXElement(\, \入门\, newXAttribute(\, \)), 13newXElement(\, \, newXAttribute(\, \)), 14newXElement(\, \北京\),
15newXElement(\, DateTime.Now.ToString(\)) 16 ) 17 ) 18 ); 19
20//需要指定编码格式,否则在读取时会抛:根级别上的数据无效。 第 1 行 位置 1异常
21XmlWriterSettings settings = newXmlWriterSettings(); 22settings.Encoding = newUTF8Encoding(false); 23settings.Indent = true;
24XmlWriterxw = XmlWriter.Create(xmlPath,settings); 25xElement.Save(xw); 26//写入文件 27xw.Flush(); 28xw.Close(); 29 }
然后得到如下的XML树
1 2
4
5 6
11
16
以下操作都是对生成的XML树进行操作
2.1 新增节点与属性
新增节点NewBook并增加属性Name=\
1publicvoidCreate(stringxmlPath) 2 {
3XmlDocumentxmlDoc = newXmlDocument(); 4xmlDoc.Load(xmlPath); 5
6var root = xmlDoc.DocumentElement;//取到根结点
7XmlNodenewNode = xmlDoc.CreateNode(\, \, \); 8newNode.InnerText = \; 9
10//添加为根元素的第一层子结点 11root.AppendChild(newNode); 12xmlDoc.Save(xmlPath); 13 }
开篇有写操作xml节点属性主要用XmlElement对象所以取到结点后要转类型
1//属性
2publicvoidCreateAttribute(stringxmlPath) 3 {
4XmlDocumentxmlDoc = newXmlDocument(); 5xmlDoc.Load(xmlPath);
6var root = xmlDoc.DocumentElement;//取到根结点 7XmlElement node =
(XmlElement)xmlDoc.SelectSingleNode(\); 8node.SetAttribute(\, \); 9xmlDoc.Save(xmlPath); 10
11 }
效果如下
2.2 删除节点与属性
1publicvoidDelete(stringxmlPath) 2 {
3XmlDocumentxmlDoc = newXmlDocument(); 4xmlDoc.Load(xmlPath);
5var root = xmlDoc.DocumentElement;//取到根结点 6
7var element = xmlDoc.SelectSingleNode(\); 8root.RemoveChild(element); 9xmlDoc.Save(xmlPath); 10 }
删除属性
1publicvoidDeleteAttribute(stringxmlPath) 2 {
3XmlDocumentxmlDoc = newXmlDocument(); 4xmlDoc.Load(xmlPath); 5XmlElement node =
(XmlElement)xmlDoc.SelectSingleNode(\); 6//移除指定属性
7node.RemoveAttribute(\);
8//移除当前节点所有属性,不包括默认属性 9//node.RemoveAllAttributes(); 10xmlDoc.Save(xmlPath); 11 }
2.3 修改节点与属性
xml的节点默认是不允许修改的,本文也就不做处理了 修改属性代码如下
1publicvoidModifyAttribute(stringxmlPath) 2 {
3XmlDocumentxmlDoc = newXmlDocument(); 4xmlDoc.Load(xmlPath); 5XmlElement element =
(XmlElement)xmlDoc.SelectSingleNode(\); 6element.SetAttribute(\, \); 7xmlDoc.Save(xmlPath); 8 }
效果如下
2.4 获取节点与属性
1publicvoidSelect(stringxmlPath) 2 {
3XmlDocumentxmlDoc = newXmlDocument(); 4xmlDoc.Load(xmlPath); 5//取根结点
6var root = xmlDoc.DocumentElement;//取到根结点 7//取指定的单个结点
8XmlNodeoldChild = xmlDoc.SelectSingleNode(\); 9
10//取指定的结点的集合
11XmlNodeList nodes = xmlDoc.SelectNodes(\); 12
13//取到所有的xml结点
14XmlNodeListnodelist = xmlDoc.GetElementsByTagName(\); 15 }
属性
1publicvoidSelectAttribute(stringxmlPath) 2 {
3XmlDocumentxmlDoc = newXmlDocument();
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C#操作XML方法集合在线全文阅读。
相关推荐: