1、XML DOM、XMLDocument

1、XML DOM概述

XML 文档大小写敏感、属性用引号括起来,每个标记都要闭合。api

DOM是XML文档的内存中树状的表示形式。架构

继承关系图:spa

XmlNode;//XML节点
......XmlDocument;//XML文档
............XmlDataDocument;//与Dataset相关的文档
......XmlDocumentFragment;//文档片断
......XmlLinkedNode;//链接节点(抽象类)
............XmlDeclaration;//XML声明:<?xml version='1.0' ..?>
............XmlDocumentType;//文档类型
............XmlElement;//元素
............XmlEntityReference;//实体引用节点
............XmlProcessingInstruction;//处理指令
............XmlCharacterData;//字符数据(抽象类)
..................XmlCDataSection;//CDATA节
..................XmlComment;//注释
..................XmlSignificantWhitespace;//有效空白
..................XmlWhitespace;//空白
..................XmlText;//元素或属性的文本内容
......XmlAttribute;//属性
......XmlEntity;//实体声明<!Entity..>
......XmlNotation;//表示法声明<!Notation...>

2、XMl节点:XmlNode

一、属性:

  • Child​Nodes : 获取节点的全部子节点。
  • First​Child : 获取节点的第一个子级。
  • Has​Child​Nodes  :获取一个值,该值指示此节点是否有任何子节点。
  • Last​Child : 获取节点的最后一个子级。
  • Parent​Node : 获取该节点的父级(针对能够拥有父级的节点)。
  • Next​Sibling : 获取紧接在该节点以后的节点。
  • Previous​Sibling : 获取紧接在该节点以前的节点。
  • Inner​Text : 获取或设置节点及其全部子节点的串连值。
  • Inner​Xml : 获取或设置仅表示该节点的子节点的标记。
  • Outer​Xml : 获取包含此节点及其全部子节点的标记。
  • Node​Type : 当在派生类中被重写时,获取当前节点的类型。
  • Value : 获取或设置节点的值。
  • Attributes : 获取一个 XmlAttributeCollection,它包含该节点的特性。
  • Owner​Document : 获取此节点所属的 XmlDocument。

二、方法:

  • Append​Child(Xml​Node) :    将指定的节点添加到该节点的子节点列表的末尾。
  • Prepend​Child(Xml​Node)  :   将指定的节点添加到该节点的子节点列表的开头。
  • Insert​After(Xml​Node, Xml​Node)  :   将指定的节点紧接着插入指定的引用节点以后。
  • Insert​Before(Xml​Node, Xml​Node)  :   将指定的节点紧接着插入指定的引用节点以前。
  • Remove​All() :    移除当前节点的全部子节点和/或属性。
  • Remove​Child(Xml​Node) :    移除指定的子节点。
  • Replace​Child(Xml​Node, Xml​Node)  :   用 oldChild 节点替换子节点 newChild。
  • Select​Nodes(String) :    选择匹配 XPath 表达式的节点列表。
  • Select​Single​Node(String) :    选择匹配 XPath 表达式的第一个 XmlNode。
  • Write​Content​To(Xml​Writer)  :   当在派生类中被重写时,该节点的全部子节点会保存到指定的 XmlWriter 中。
  • Write​To(Xml​Writer)  :   当在派生类中被重写时,将当前节点保存到指定的 XmlWriter 中。
  • Clone() :    建立此节点的副本。
  • Clone​Node(Boolean)  :   当在派生类中被重写时,建立该节点的副本
  • Create​Navigator() :    建立 XPathNavigator 以浏览此对象。

3、XML文档:XMLDocument

一、属性:

  • Document​Element : 获取文档的根 XmlElement。
  • Document​Type : 获取包含 DOCTYPE 声明的节点。
  • Preserve​Whitespace : 获取或设置一个值,该值指示是否在元素内容中保留空白区域。
  • Schemas : 获取或设置与此 XmlDocument 关联的 XmlSchemaSet 对象。
  • Xml​Resolver : 设置 XmlResolver 以用于解析外部资源。

二、方法:

  • Get​Element​ById(String)  :   获取具备指定 ID 的 XmlElement。
  • Get​Elements​ByTag​Name(String)  :   返回一个 XmlNodeList,它包含与指定 Name 匹配的全部子代元素的列表。
  • Import​Node(Xml​Node, Boolean)   :  将节点从另外一个文档导入到当前文档。Load(Stream)    从指定的流加载 XML 文档。
  • Load(String) :    从指定的 URL 加载 XML 文档。。
  • Load​Xml(String)  :   从指定的字符串加载 XML 文档。
  • Save(String) :    将 XML 文档保存到指定的文件。 若是存在指定文件,则此方法会覆盖它。
  • Validate(Validation​Event​Handler)  :   验证 XmlDocument 是否是 Schemas 属性中包含的 XML 架构定义语言(XSD) 架构。
  • Clone​Node(Boolean) :    建立此节点的副本。
  • Read​Node(Xml​Reader)  :   根据 XmlReader 中的信息建立一个 XmlNode 对象。 读取器必须定位在节点或属性上。
  • Write​Content​To(Xml​Writer)  :   将 XmlDocument 节点的全部子级保存到指定的 XmlWriter 中。
  • Write​To(Xml​Writer) :    将 XmlDocument 节点保存到指定的 XmlWriter。
  • Create​****(String)  :   建立具备指定 Name 的 Xml***。
    • Create​Navigator()  :   建立一个用于导航此文档的新 XPathNavigator 对象。

    三、事件:

    • Node​Changing、Node​Changed 当属于该文档的节点的 Value 将、已被更改时发生。
    • Node​Inserting、Node​Inserted 将属于该文档的节点将、已插入另外一个节点时发生。
    • Node​Removing、Node​Removed 当属于该文档的节点将、已从其父级中移除时发生。

    4、XML元素:XmlElement

    一、属性:

    • Attributes :   获取包含该节点特性列表的 XmlAttributeCollection。
    • Has​Attributes  :   获取一个 boolean 值,该值指示当前节点是否有任何属性。
    • Is​Empty :    获取或设置元素的标记格式。
    • Schema​Info :    获取做为架构验证的结果分配给此节点的后架构验证信息集。

    二、方法:

    • Get​Attribute(String)  :   返回具备指定名称的特性的值。
    • Get​Attribute​Node(String) :    返回具备指定名称的 XmlAttribute。
    • Has​Attribute(String) :    肯定当前节点是否具备带有指定名称的特性。
    • Get​Elements​ByTag​Name(String)  :   返回一个 XmlNodeList,它包含与指定 Name 匹配的全部子代元素的列表。
    • Remove​All() :    移除当前节点的全部指定特性和子级。 不移除默认特性。
    • Remove​All​Attributes()  :   从元素移除全部指定的特性。 不移除默认特性。
    • Remove​Attribute(String) :    按名称移除特性。
    • Remove​Attribute​At(Int32) :    从元素中移除具备指定索引的特性节点。 (若是移除的特性有一个默认值,则当即予以替换)。
    • Remove​Attribute​Node(String, String) :    移除由本地名称和命名空间 URI 指定的 XmlAttribute。 (若是移除的特性有一个默认值,则当即予以替换)
    • Clone​Node(Boolean) :    建立此节点的副本。
    • Write​Content​To(Xml​Writer)  :   将该节点的全部子项保存到指定的 XmlWriter 中。
    • Write​To(Xml​Writer) :    将当前节点保存到指定的 XmlWriter 中。

    5、实例

    查找节点:SelectNodescode

    string str = @"<JZD_Message xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""https://api.xiaoheer.com/"" >   <ErrorRes>     <Err_code>200</Err_code>     <Err_content>认证信息匹配</Err_content>   </ErrorRes> </JZD_Message>"; var xd = new System.Xml.XmlDocument(); xd.LoadXml(str);//xml加载xml字符串
     XmlNamespaceManager nsManager = new XmlNamespaceManager(xd.NameTable);//建立一个命名空间管理器
     nsManager.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");//添加字符串时,命名空间管理器将会原子化这些字符串。
    nsManager.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); nsManager.AddNamespace("amon", "https://api.xiaoheer.com/"); var rowNoteList = xd.SelectNodes("//amon:ErrorRes", nsManager);//查找节点
    Console.WriteLine(rowNoteList[0]);

    返回:xml

    <ErrorRes xmlns="https://api.xiaoheer.com/">
                  <Err_code>200</Err_code>
                  <Err_content>认证信息匹配</Err_content>
    </ErrorRes>
    相关文章
    相关标签/搜索