VC++中利用MSXML解析XML文档
一、 XML 简介
XML(Xtensible Markup Language,即扩展标记语言)的发展起源于1996年。当时,出版界巨头和Web业内人士经过共同讨论,
提出了创建SGML(Standard Generalized Markup Language,即标准通用标识语言)子集(HML)的建议。
该子集专用于Web,具有可扩展(或可扩充)性,并且能利用结构化标记语言的所有高级功 能,但摒弃了SGML的复杂性。
XML规范的第一份草稿于1996年11月发布后不久,1997年1月首个XML解析器就面世了。随后,便出现了XML的 应用以及新的规范和解析器。
HTML(Hypertext Markup Language)语言是大家所熟悉的开发网页的一种标记语言,但它不是一种编程语言,
它的主要标记是针对文档内容本身结构的描述,因机器本身是不能够解 析它的内容的。XML语言是SGML语言的子集,
它保留了SGML主要的使用功能,同时大大减小了SGML的复杂性。它不仅能表示文档的内容,而且可以表 示文档的结构,
这样在能够被人类理解的同时,也能够被机器所理解。虽然HTML是SGML的一个应用,XML是SGML的一个子集,
但是XML绝不是在 HTML上添加某些元素而形成的,它们之间是有很大区别的。最大的区别就是XML允许使用者为某种特殊目的而定义自已的元素。
除此之外,另一个最主要的区 别就是XML致力解决的问题,正是在使用HTML时所遇到的一些特殊
问题。
XML要求遵循一定的严格标准,其分析程序比
HTML浏览器对语法和结构的要求更加严格。XML文档每次分析的结果都一致,
而HTML在不同的浏览器 中可能会作出不同的分析和显示。同时,XML标准是对数据的处理应用,而不只是针对Web页的
,它还可涉及到数据库电子商务系统,以及任何显示
系统的高级 应用。开发者可根据特定的工业需求,利用XML创建自定义的数据结构。
这些数据结构和数据库可以在许多设备上查看,而不需要使用自定义的接口在不同的显示 设备上查看相同的数据。
XML主要有三个要素:文档类型声明(DTD:Document Type Declaration)或XML Schema(XML大纲)、
可扩展样式语言(XSL:eXtensible Stylesheet Language)和可扩展链接语言(XLink:eXtensible Link Language)。
DTD和XML大纲规定了XML文件的逻辑结构,定义了XML文件中的元素、元素的属性以及元素与元素属性之间的关系;
Namespace(名域)实现了统一的XML文档数据表示以及数据的相互集成;XSL是用于规定XML文档呈现样式的语言,
它使得数据与其表现形式相互 独立,比如XSL能使Web浏览器改变文档的表示法,如数据显示顺序的变化,不需要再与服务器进行通讯。
通过改变样式表,同一个文档可以显示得更大,或者 经过
折叠只显示外面的一层,或者可以变为打印的格式。而XLink 将进一步扩展目前Web上已有的简单链接。
二、文档对象模型(DOM)
DOM是Document Object Model(文档对象模型)的简称,是对Web文档进行应用开发、编程的应用程序接口(API)。
作为W3C公布的一种跨平台、与语言无关的接口规范,DOM提供了在不同环境和应用中的标准程序接口,可以用任何语言实现。
DOM采用对象模型和一系列的接口来描述XML文档的内容和结构,即利用对象把文档模型化。这种对象模型实现的基本功能包括:
·描述文档表示和操作的接口;
· 接口的行为和属性;
· 接口之间的关系以及互操作。
DOM可对结构化的XML文档进行解析,文档中的指令、元素、实体、属性等所有内容个体都用对象模型表示,
整个文档被看成是一个有结构的信息树,而不 是简单的文本流,生成的对象模型就是树的节点,对象同时包含了方法和属性。
因此,对文档的所有操作都是在对象树上的进行。在DOM中,树中的一切都是对 象,不管是根节点还是实体的属性。
在DOM中主要有以下三个对象: