在.NET中使用XML的基本方法
格式良好的XML文档:
有且只有一个根元素
每个元素都有结束标记(简短语法除外)
没有重叠元素(所有子元素必须完全嵌套在父元素内)
所有特性必须放在引号内
XML支持两种方法验证,DTD和模式,前者将被后者取代,模式允许规定元素和属性的数据类型,而且使用XML兼容的语法编写。如果有已经写好的XML文件,VS可以为它生成schema
XML DOM的类在system.xml中:
XmlNode 这个类表示文档树中的一个节点,是很多类的基类,如果表示根,就可以导航到任意位置
XmlDocument 扩展了xmlNode类,常是使用xml的第一个对象,因为这个类用于加载磁盘或其他地方的数据并在这些位置保存数据
XmlElement 表示xml中的一个元素
XmlAttribute 表示一个特性,和xmlDocument一样派生于xmlNode类
XmlText 表示开始标记和结束标记之间的文本
XmlComment 表示一种特殊类型节点,不是文档一部分,但提供各部分信息
XmlNodeList表示一个节点集合
XmlElement 类提供的用来导航的属性:
FirstChild 这个属性返回当前节点之后的第一个子节点
LastChild 这个属性返回当前节点的最后一个子节点
ParentNode 这个属性返回当前节点的父节点
NextSibling 返回有相同父节点的下一个节点
HasChildNodes 检查当前元素是否有子元素,无需获取firstChild的值并检查是否为null
操作节点的值(两个方法一个属性):
InnerText 这个属性获取当前节点中所有子节点的文本,把它作为一个串联字符串返回
InnerXml 这个属性返回类似于innerText的文本,也返回所有的标记
Value 这个属性是操作文档中信息的最精炼方式
XMLDocument类的方法可以创建新的xmlNode和XmlElement实例(这两个类只有一个受保护的构造函数,不能直接使用new创建)
插入新节点的方法:
CreateNode 创建任意类型的节点,有三个重载版本
CreateElement 这只是createNode的一个版本,只能创建xmlElement类型的节点
CreateAttribute 这也只是CreateNode的一个版本,只能创建XmlAttribute类型的节点
CreateTextNode 创建XmlTextNode类型的节点
CreateComment 创建注释
AppendChild 把一个子节点追加到XmlNode类型或其派生类型的节点上,显示在相应节点的子节点列表的最后
InsertAfter 可以控制插入新节点的位置
InsertBefore 插入参考节点的前面
删除节点:
RemoveAll 这个方法删除节点上的所有子节点,它还会删除节点上的所有特性
RemoveChild 这个方法删除节点上的一个子节点,返回从文档中删除的节点
选择节点:
SelectSingleNode 选择一个节点,如果创建一个查找多个节点的查询,就返回第一个节点
SelectNodes 以XmlNodesList类的形式返回一个节点集合
Xpath执行的最常见操作:
选择当前节点 .
选择当前节点的父节点 ..
选择当前节点的所有子节点 *
选择带有特定名称的所有子节点,这里是title title
选择当前节点的一个特性 @type
选择当前节点的所有特性 @*
按照索引选择一个子节点 element[2]
选择当前节点的所有文本节点 text()
选择当前节点的一个或多个孙子节点 element/text()
在文档中选择带有特定名称的所有节点,这里是mass节点 //mass
在文档中选择带有特定名称和特定父节点名称的所有节点 //element/name
选择值满足条件的节点,在这里选择元素名为Hydrogen的元素 //element[name=’Hygrogen’]
选择特性值满足条件的节点 //element[@type=’Nodegas’]