.NET Framework 开发人员指南
XML 文档对象模型 (DOM)
XML 文档对象模型 (DOM) 类是 XML 文档的内存中表示形式。DOM 使您能够以编程方式读取、处理和修改 XML 文档。XmlReader 类也读取 XML,但它提供非缓存的只进、只读访问。这意味着使用 XmlReader 无法编辑属性值或元素内容,也无法插入和移除节点。编辑是 DOM 的主要功能。XML 数据在内存中表示是常见的结构化方法,尽管实际的 XML 数据在文件中时或从另一个对象传入时以线性方式存储。以下是 XML 数据。
输入
<?xml version="1.0"?>
<books>
<book>
<author>Carson</author>
<price format="dollar">31.95</price>
<pubdate>05/01/2001</pubdate>
</book>
<pubinfo>
<publisher>MSPress</publisher>
<state>WA</state>
</pubinfo>
</books>
下图显示将此 XML 数据读入 DOM 结构中时如何构造内存。
XML 文档结构
在 XML 文档结构中,此图中的每个圆圈表示一个节点(称为 XmlNode 对象)。XmlNode 对象是 DOM 树中的基本对象。XmlDocument 类(扩展 XmlNode)支持用于对整个文档执行操作(例如,将文档加载到内存中或将 XML 保存到文件中)的方法。此外,XmlDocument 提供了查看和处理整个 XML 文档中的节点的方法。XmlNode 和 XmlDocument 都具有性能和可用性增强,并通过方法和属性执行下列操作:
访问和修改 DOM 特定的节点,如元素节点、实体引用节点等。
除检索节点包含的信息(如元素节点中的文本)外,还检索整个节点。
注意
如果应用程序不需要 DOM 提供的结构或编辑功能,则 XmlReader 和 XmlWriter 类提供对 XML 的非缓存的只进流访问。有关更多信息,请参见用 XmlReader 读取 XML 和使用 XmlWriter 编写 XML。
Node 对象具有一组方法和属性以及基本的和定义完善的特性。其中的某些特性包括:
节点有单个父节点,父节点是与节点相邻的上一级节点。唯一没有父级的节点是文档根,因为它是顶级节点,包含了文档本身和文档片段。
大多数节点可以有多个子节点,子节点是与节点相邻的下一级节点。以下是可以有子节点的节点类型列表。
Document
DocumentFragment
EntityReference
Element
Attribute
XmlDeclaration、Notation、Entity、CDATASection、Text、Comment、ProcessingInstruction 和 DocumentType 节点没有子节点。
处于同一级别、在关系图中由 book 和 pubinfo 节点表示的节点是同辈。
DOM 的一个特性是处理属性的方式。属性是不属于父子关系和同辈关系的节点。属性被视为元素节点的属性,由名称和值对组成。例如,如果存在由与元素 price 关联的 format="dollar" 组成的 XML 数据,则单词 format 是名称,format 属性的值是 dollar。为检索 price 节点的 format="dollar" 属性,可以在游标位于 price 元素节点时调用 GetAttribute 方法。有关更多信息,请参见访问 DOM 中的属性。
将 XML 读入内存时会创建节点。然而,并非所有节点都是同一类型。XML 中的元素具有不同于处理指令的规则和语法。因此,在读取各种数据时,将为每个节点分配一种节点类型。此节点类型确定节点的特性和功能。
有关在内存中生成的节点类型的更多信息,请参见 XML 节点类型。有关在节点树中创建的对象的更多信息,请参见将对象层次结构映射到 XML 数据。
Microsoft 扩展了万维网联合会 (W3C) DOM 级别 1 和级别 2 中可用的 API,使 XML 文档的使用更容易。在完全支持 W3C 标准的同时,附加的类、方法和属性增加了使用 W3C XML DOM 无法完成的功能。新类使您能够访问关系数据,为您提供与 ADO.NET 数据同步、同时将数据作为 XML 公开的方法。有关更多信息,请参见使 DataSet 与 XmlDataDocument 同步。
在将 XML 数据读入内存,以更改其结构、添加或移除节点或者与在元素包含的文本中一样修改节点所保存的数据时,DOM 最有用。不过,在其他方案中,还有其他比 DOM 更快的类。要对 XML 进行快速非缓存只进流访问,请使用 XmlReader 和 XmlWriter。如果需要用游标模型和 XPath 进行随机访问,请使用 XPathNavigator 类。
请参见
概念
XML 节点类型
将对象层次结构映射到 XML 数据
From:.NET Framework 开发人员指南
XML 文档对象模型 (DOM)
XML 文档对象模型 (DOM) 类是 XML 文档的内存中表示形式。DOM 使您能够以编程方式读取、处理和修改 XML 文档。XmlReader 类也读取 XML,但它提供非缓存的只进、只读访问。这意味着使用 XmlReader 无法编辑属性值或元素内容,也无法插入和移除节点。编辑是 DOM 的主要功能。XML 数据在内存中表示是常见的结构化方法,尽管实际的 XML 数据在文件中时或从另一个对象传入时以线性方式存储。以下是 XML 数据。
输入
<?xml version="1.0"?>
<books>
<book>
<author>Carson</author>
<price format="dollar">31.95</price>
<pubdate>05/01/2001</pubdate>
</book>
<pubinfo>
<publisher>MSPress</publisher>
<state>WA</state>
</pubinfo>
</books>
下图显示将此 XML 数据读入 DOM 结构中时如何构造内存。
XML 文档结构
在 XML 文档结构中,此图中的每个圆圈表示一个节点(称为 XmlNode 对象)。XmlNode 对象是 DOM 树中的基本对象。XmlDocument 类(扩展 XmlNode)支持用于对整个文档执行操作(例如,将文档加载到内存中或将 XML 保存到文件中)的方法。此外,XmlDocument 提供了查看和处理整个 XML 文档中的节点的方法。XmlNode 和 XmlDocument 都具有性能和可用性增强,并通过方法和属性执行下列操作:
访问和修改 DOM 特定的节点,如元素节点、实体引用节点等。
除检索节点包含的信息(如元素节点中的文本)外,还检索整个节点。
注意
如果应用程序不需要 DOM 提供的结构或编辑功能,则 XmlReader 和 XmlWriter 类提供对 XML 的非缓存的只进流访问。有关更多信息,请参见用 XmlReader 读取 XML 和使用 XmlWriter 编写 XML。
Node 对象具有一组方法和属性以及基本的和定义完善的特性。其中的某些特性包括:
节点有单个父节点,父节点是与节点相邻的上一级节点。唯一没有父级的节点是文档根,因为它是顶级节点,包含了文档本身和文档片段。
大多数节点可以有多个子节点,子节点是与节点相邻的下一级节点。以下是可以有子节点的节点类型列表。
Document
DocumentFragment
EntityReference
Element
Attribute
XmlDeclaration、Notation、Entity、CDATASection、Text、Comment、ProcessingInstruction 和 DocumentType 节点没有子节点。
处于同一级别、在关系图中由 book 和 pubinfo 节点表示的节点是同辈。
DOM 的一个特性是处理属性的方式。属性是不属于父子关系和同辈关系的节点。属性被视为元素节点的属性,由名称和值对组成。例如,如果存在由与元素 price 关联的 format="dollar" 组成的 XML 数据,则单词 format 是名称,format 属性的值是 dollar。为检索 price 节点的 format="dollar" 属性,可以在游标位于 price 元素节点时调用 GetAttribute 方法。有关更多信息,请参见访问 DOM 中的属性。
将 XML 读入内存时会创建节点。然而,并非所有节点都是同一类型。XML 中的元素具有不同于处理指令的规则和语法。因此,在读取各种数据时,将为每个节点分配一种节点类型。此节点类型确定节点的特性和功能。
有关在内存中生成的节点类型的更多信息,请参见 XML 节点类型。有关在节点树中创建的对象的更多信息,请参见将对象层次结构映射到 XML 数据。
Microsoft 扩展了万维网联合会 (W3C) DOM 级别 1 和级别 2 中可用的 API,使 XML 文档的使用更容易。在完全支持 W3C 标准的同时,附加的类、方法和属性增加了使用 W3C XML DOM 无法完成的功能。新类使您能够访问关系数据,为您提供与 ADO.NET 数据同步、同时将数据作为 XML 公开的方法。有关更多信息,请参见使 DataSet 与 XmlDataDocument 同步。
在将 XML 数据读入内存,以更改其结构、添加或移除节点或者与在元素包含的文本中一样修改节点所保存的数据时,DOM 最有用。不过,在其他方案中,还有其他比 DOM 更快的类。要对 XML 进行快速非缓存只进流访问,请使用 XmlReader 和 XmlWriter。如果需要用游标模型和 XPath 进行随机访问,请使用 XPathNavigator 类。
请参见
概念
XML 节点类型
将对象层次结构映射到 XML 数据
分享到:
相关推荐
数据存储在链表树结构中,保留 XML 数据层次结构。 SAX(流式)读取 XML 文件和字符串以最小化内存使用。 支持任意元素名称、属性和属性值,没有预设限制,只有可用内存。 支持“叶”节点中的整数、实数、不透明...
其次,使用RDB还有一个问题:数据的层次表达与多值问题,将树型数据扁平化存储的方案是有的,但是,将几层简单的节点拆分成N个表格,岂不是杀鸡用牛刀? 其次的考虑当然是XML,然而XML是基于可读文本的,如何解决二...
xml2csv 这是一个命令行实用程序和库,可根据用户提供的配置将XML文件转换... 根据XML节点及其子代之间的1..n关系,从一组XML文件中创建许多CSV文件。 作为独立的Jar文件构建,除了以外,没有任何依赖关系,以便于部
DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以 层次结构组织的节点或信息片断的集合。
该数据库是根据Wordnet定义的层次结构组织的。 有关更多信息,请参见 。 该代码从XML文件读取图形结构。 并执行以下定义的任务: 查找由其WordNet ID /同义词集ID指定的节点的所有祖先和后代 从给定节点的根查找...
DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或...
数据存储在链接列表树结构中,以保留XML数据层次结构。 SAX(流式)读取XML文件和字符串以最大程度地减少内存使用量。 支持任意元素名称,属性和属性值,没有预设限制,仅可用内存。 在“叶”节点中支持整数,...
DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中导航寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而 DOM 被认为是...
DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作。由于它是基于信息层次的,因而DOM被认为是基于树或...
TreeView控件可以使用XML文档作为数据源,根据XML文档的层次结构显示节点。而XML文档的访问由XmlDataSource控件来完成,从XmlDataSource控件的DataFile属性中指定XML文档路径,然后在TreeView控件中设置与XML文档中...
代码分为两个部分:OXExcel类:Excel文档结构层次的节点或元素的处理;OXSheet:工作表内容层次的节点或元素的处理。 注:本代码段是本人经多次试验后的结果,但依然不尽如人意,主要表现在两个方面:1、表格样式...
让我们看一下关键思想: Node具有名称和(可选)值,并且可以存储属性(例如XML / HTML)所有节点都可以有子节点,并且所有子节点都只是普通节点,从而允许无限的层次结构级别每个CGMLObject都有一个根节点,并且...
通常把这样的树结构成为一棵节点树 节点 (node) DOM文档是由节点构成的集合,此时的节点是文档树上的树枝或者树叶 DOM中节点的类型: 元素节点(element node),诸如、、等。元素节点可以包含其它的...
每一个Android项目都包含一个清单(Manifest)文件–AndroidManifest.xml,它存储在项目层次中的最底层。清单可以定义应用程序及其组件的结构和元数据。 它包含了组成应用程序的每一个组件(活动、服务、内容提供器和...
可以在安卓系统打印出树的层次结构,采用的是java的泛型编程,只需自己写节点类型和xml文件就可以实现自己的树。
PowerCharts是一系列先进的绘图视窗,用于特殊的应用程式,像网格图、理财计画、层次结构和股票价格等。它提供了高度互动的功能,像视觉化资料编辑、资料节点的拖放安排和轴心限制的切换和改变。 该元件使用XML编写...
XML索引动态分组的P2P信息检索机制,解决了P2P系统多层次分组不能及时更新以及分组依据片面性的 问题。方案中基于发掘用户兴趣设计了动态分组的IBDG算法,该算法通过实时更新分组提高了搜索效率。仿 真实验结果证明该...
代码将实现这个传统的层次结构,不同的是使用LINQ访问SQL替换原来的数据库层操作。 【DrawMeWCF】 .NET3.5下WPF及WCF实现在线绘图聊天程序源代码 这是在Visual Studio 2008下面实现的一个网络绘图板聊天程序,着重...
该组件允许您可视化包含在 csv 文件中的 DAG,或构建具有无限层次结构的边/节点图。 该组件的主要特点是: 无限层次的层次结构 从 csv 文件加载数据 应用程序状态的保存和加载 将当前应用程序视图导出为图像 查看...
反应器按层次结构顺序制备,类似于生物分类。每个反应器都可以独立组成或改进,并且可以轻松地用于不同的模型。这种通过各种模块的组合构建模型的方式是通过使用面向对象的编程概念来实现的。因此,simBio是一个简单...