一、XML DOM概述

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

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

继承关系图:

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...>

二、XMl节点:XmlNode

1、属性:

  • 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。

2、方法:

  • 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 以浏览此对象。

三、XML文档:XMLDocument

1、属性:

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

2、方法:

  • 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 对象。

3、事件:

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

四、XML元素:XmlElement

1、属性:

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

2、方法:

  • 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 中。

五、实例

查找节点:SelectNodes

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[]);

返回:

<ErrorRes xmlns="https://api.xiaoheer.com/">
              <Err_code>200</Err_code>
              <Err_content>认证信息匹配</Err_content>
</ErrorRes>

一、XML DOM、XMLDocument的更多相关文章

  1. C#(1):XML DOM、System.Xml.XmlDocument

     一.XML DOM概述 XML 文档大小写敏感.属性用引号括起来,每一个标记都要闭合. DOM是XML文档的内存中树状的表示形式. 继承关系图: XmlNode;//XML节点 ......Xml ...

  2. js ajax 传送xml dom对象到服务器

    客户端代码 1 <script> var isie = true; var xmlhttp = null; function createXMLHTTP() {//创建XMLXMLHttp ...

  3. htm Dom对象与 Xml Dom对象的理解

    html 是基于Xml的文档规范.是一种特殊的xml文档,这一点很重要 1.xml 文档的操作,java,c#,...各种语言都提供了很好的api对文档进行解析,操作.当然js 也不例外,提供了一系列 ...

  4. python 解析XML python模块xml.dom解析xml实例代码

    分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...

  5. python 应用xml.dom.minidom读xml

    xml文件 <?xml version="1.0" encoding="utf-8"?> <city> <name>上海&l ...

  6. XML DOM 循环(foreach)读取PHP数据 和 PHP 编写 XML DOM 【转载】

    用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖.实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP 读取和编写 XML 不一定是项恐怖的任务.首先,需要学习一点关于 XM ...

  7. PHP XML DOM

    PHP XML DOM 内建的 DOM 解析器使在 PHP 中处理 XML 文档成为可能. DOM 是什么? W3C DOM 提供了针对 HTML 和 XML 文档的标准对象集,以及用于访问和操作这些 ...

  8. JavaScript 【 IE中的XML DOM 】

    IE中的 XML DOM 在统一的正式规范出来以前,浏览器对于XML的解决方案各不相同.DOM2级提出了动态创建XML DOM规范,DOM3进一步增强了XML DOM.所以,在不同的浏览器实现XML的 ...

  9. 自学XML DOM的几个例子

    XML DOM定义了如何获取.修改.添加和删除XML文件中结点的接口,极大方便了开发者对XML文件的使用.XML DOM教程和手册请转:http://www.w3school.com.cn/xmldo ...

随机推荐

  1. LeetCode 141. 环形链表(Linked List Cycle) 19

    141. 环形链表 141. Linked List Cycle 题目描述 给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 ...

  2. NetworkX一个图论与复杂网络建模工具

    NetworkX是一个图论与复杂网络建模工具,采用Python语言开发,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析.仿真建模等工作.(1)NetworkX支持创建简单无向图.有向 ...

  3. Spring MVC <mvc:annotation-driven/>的作用

    一.mvc:annotation-driven的作用 Spring 3.0.x中使用了mvc:annotation-driven后,默认会帮我们注册默认处理请求,参数和返回值的类,其中最主要的两个类: ...

  4. Python-17-反射

    一.什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究.它首先被 ...

  5. Python Threading 线程/互斥锁/死锁/GIL锁

    导入线程包 import threading 准备函数线程,传参数 t1 = threading.Thread(target=func,args=(args,)) 类继承线程,创建线程对象 class ...

  6. Django数据库基本操作(MySQL)

    以一个示例工程为例: 下面是工程文件目录: untited为项目文件(一般与根目录同名),CommunityModel为一个定义数据库模型的APP 一.定义模型 1.首先配置好数据库,在untited ...

  7. Linux Nginx的权限——访问本地目录报错403

    在安装好FastDFS并成功上传图片文件后,根据FastDFS返回的文件地址无法通过HTTP(即浏览器)访问到,报错404或者403. 不管是Error 404还是Error 403,基本都是Ngin ...

  8. 【转载】 Asp.Net安全之防止脚本入

    在ASP.NET开发过程中,安全性是必须要重中之重需要考虑的,其中一种情况是要防止用户输入恶意脚本入侵的情况,恶意脚本入侵指的是用户在提交内容中提交了包含特殊Javascript脚本程序等非法信息,如 ...

  9. 图片预先加载 preloadjs

    <body><div class="loading"> <div class="progress"></div> ...

  10. IntelliJ IDEA.2017.3.4(win7 64位)的安装使用

    下载 1.Idea与Webstorm同为JetBrains公司的产品,因此安装使用方式也极为相似,首先我们打开IDEA的官方下载网站:https://www.jetbrains.com/idea/,点 ...