精明买家demo

互联网 | 编辑: 2005-11-30 00:00:00转载-投稿
   MSDN Home >  .NET Framework >  使用 .NET Framework 编程 >  使用 .NET Framework 中的 XML
.NET Framework 开发员指南  

XML 文档对象模型 (DOM)

文档对象模型 (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 文档中的节点的方法。XmlNodeXmlDocument 都具有性能和可用性增强,并具有进行下列操作的方法和属性:

  • 访问和修改特定于 DOM 的节点,如元素节点、实体引用节点等。
  • 除检索节点包含的信息(如元素节点中的文本)外,还检索全部节点。
    注意   如果应用程序不需要 DOM 提供的结构或编辑功能,则 XmlReaderXmlWriter 类提供对 XML 的非缓存的只进流访问。有关更多信息,请参见用 XmlReader 读取 XML用 XmlWriter 编写 XML

Node 对象具有一组方法和属性以及基本和定义完善的特性。其中的某些特性包括:

  • 节点有单个父节点,父节点是节点的上一级节点。唯一没有父级的节点是文档根,因为它是顶级节点,包含了文档本身和文档片段。
  • 大多数节点可以有多个子节点,子节点是节点的下一级节点。以下是可以有子节点的节点类型列表。
    • Document
    • DocumentFragment
    • EntityReference
    • Element
    • Attribute

    XmlDeclarationNotationEntityCDATASectionTextCommentProcessingInstructionDocumentType 节点没有子级。

  • 处于同一级别、在关系图中由 bookpubinfo 节点表示的节点是同辈。

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 同步

DOM 对于将 XML 数据读入内存以更改其结构、添加或移除节点,或者与元素包含的文本一样修改节点所保存的数据最有用。不过,在其他方案中,还有其他比 DOM 更快的类。对于对 XML 的快速非缓存只进流访问,请使用 XmlReaderXmlWriter。如果需要用游标模型和 XPath 进行随机访问,请使用 XPathNavigator 类。

请参见

XML 节点类型 | 将对象层次结构映射到 XML 数据


©2005 Microsoft Corporation. 版权所有.  保留所有权利 |商标 |隐私权声明
   MSDN Home >  .NET Framework >  使用 .NET Framework 编程 >  使用 .NET Framework 中的 XML
.NET Framework 开发员指南  

XML 文档对象模型 (DOM)

文档对象模型 (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 文档中的节点的方法。XmlNodeXmlDocument 都具有性能和可用性增强,并具有进行下列操作的方法和属性:

  • 访问和修改特定于 DOM 的节点,如元素节点、实体引用节点等。
  • 除检索节点包含的信息(如元素节点中的文本)外,还检索全部节点。
    注意   如果应用程序不需要 DOM 提供的结构或编辑功能,则 XmlReaderXmlWriter 类提供对 XML 的非缓存的只进流访问。有关更多信息,请参见用 XmlReader 读取 XML用 XmlWriter 编写 XML

Node 对象具有一组方法和属性以及基本和定义完善的特性。其中的某些特性包括:

  • 节点有单个父节点,父节点是节点的上一级节点。唯一没有父级的节点是文档根,因为它是顶级节点,包含了文档本身和文档片段。
  • 大多数节点可以有多个子节点,子节点是节点的下一级节点。以下是可以有子节点的节点类型列表。
    • Document
    • DocumentFragment
    • EntityReference
    • Element
    • Attribute

    XmlDeclarationNotationEntityCDATASectionTextCommentProcessingInstructionDocumentType 节点没有子级。

  • 处于同一级别、在关系图中由 bookpubinfo 节点表示的节点是同辈。

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 同步

DOM 对于将 XML 数据读入内存以更改其结构、添加或移除节点,或者与元素包含的文本一样修改节点所保存的数据最有用。不过,在其他方案中,还有其他比 DOM 更快的类。对于对 XML 的快速非缓存只进流访问,请使用 XmlReaderXmlWriter。如果需要用游标模型和 XPath 进行随机访问,请使用 XPathNavigator 类。

请参见

XML 节点类型 | 将对象层次结构映射到 XML 数据


©2005 Microsoft Corporation. 版权所有.  保留所有权利 |商标 |隐私权声明

每日精选

点击查看更多

首页 手机 数码相机 笔记本 游戏 DIY硬件 硬件外设 办公中心 数字家电 平板电脑