关于System.Xml对用dom操作xml文件,昨天的笔记有提到,但也仅仅只是个Overview。为此,我期望挖掘出一些开发中会用到的更细节的东西来。
老实说,我对于System.Xml中的类结构相当不满意,为什么微软不在生成DOM节点的时候顺便生成相应的实例,如一个元素就生成XmlElement,至少,XmlElement应当有一个如ElementList之类的属性,好方便用户访问其子元素。但是,现在要做到这一步就比较麻烦。
还好,在c# 3.0中有扩展方法,我想,应当可以给XmlElement扩展个方法来。
因为平常工作的重点就是处理元素,所以呢,我把研究的重点放在XmlElement上。
XmlElement还真有几个有用的东西:
AppendChild 在最后一个子节点的末尾加一个节点
PrependChild 在第一个子节点之彰加一个节点
ChildNodes 获取所有子节点,只可惜只能用于迭代,不能用来add,remove
Attributes 获取所有属性,可迭代还可以Add,Remove
GetAttribute、RemoveAttribute、SetAttribute 处理属性用的
InnerText,InnerXml,OutXml 这几个东西的作用就不用说了
RemoveChild 删除指定的子级节点
ReplaceChild 替换指定子级节点
基本上功能很完备了,只差一个我想要的ElementList。能增、改、删节点、属性。
当然还有我们最喜欢的两个方法:SelectNodes、SelectSingleNode。
XmlElement的方法可以加节点,但是是加一个XmlNode,并没有创建一个Element的方法。谁有这个本事呢?XmlDocument类,它有所有类型的节点的创建方法:CreateElement,CreateComment,CreateAttribute等等。有了这个,我们才真的能如臂使指地操作xml文件。
评论