|
|
1.XML DOM是什么
迄今为止,我们一直将 XML 作为这样一种工具,用它描述数据的结果是可供人阅读的文档。其实, XML 最令人称赞的功能恐怕要算是它表现信息结构的能力,即文档各个部分之间的关系以及它们如何组织成为一个具有确定意义的整体--正如数据库中的表能够描述各部分数据的关系。如结构良好规则和更为严格的 DTD 定义所指出的, XML 文档内各个元素之间不是简单的前后次序关系,而是具有严格的嵌套、依赖关系。 XML 文档作为一个具有确定意义的信息整体,其部分语义正是通过这种结构关系得以体现。
在 DOM 下,程序所面对的XML文档不是一个文本流,而是一棵对象树。程序可以方便地提取或修改任意对象或它的属性,这些属性可以是与当前对象对应的元素的子元素列表,也可以是它所包含的文本。所有 XML 文档具有以下特征:它的所有元素分层嵌套形成一个树形结构。因此,我们不仅可以简单地把一个xml文件看成是一个文本文件,而且还可以看成如下的标记树。在这棵标记树中,每一个 XML 元素对应一个树节点,所有子节点都依次嵌套于它的父节点。

文档对象模型就是这样一个结构化文档编程接口( API ),它定义了文档的逻辑结构以及访问和操纵文档的方法。使用 DOM 模型,程序员可以方便地创建文档、导航其结构,或增加、修改、删除、移动文档的任何成份。DOM 标准的出现大大简化了结构化文档在编程环境中的处理。例如,利用 DOM 可以很方便地写出一个图形化的 XML 文档编辑程序:用图形表示文档中各个元素以及它们之间的关系,用户可以非常直观地编辑文档结构、元素、属性。本文后面的" XML 相关软件"这一节列出了许多 XML 编辑软件,其中很大一部分都支持这种方式的 XML 文档编辑。
目前,微软公司的IE5浏览器支持XML与DOM的结合运用,主要提供XMLDOMDocument、
XMLDOMNode、XMLDOMNodeList、XMLDOMNamedNodeMap等四个DOM对象。
2.在脚本中使用DOM
要使用DOM,需要创建一个XML解析器的实例。微软公司在Msxml.dll中创建了一系列标准的COM接口来使创建实例变得可能。Msxml.dll中包含了类型库和可应用的代码,这些你可以用来处理XML文件。如果你使用可实现脚本的客户端,比如VBScript 和IE,你可以使用CreateObject方法来得到解析器的实例。
Set objParser = CreateObject( "Microsoft.XMLDOM")
如果你使用ASP(Active Server Page),你使用Server.CreateObject方法。
Set objParser = Server.CreateObject( "Microsoft.XMLDOM" )
你可以通过两个途径获得Msxml.dll。你可以安装IE5.0,MSXML解析器是其中集成的部件;或者你可以到相关网站上下载它。如果你打开MSXML库,用Visual Basic 6.0对象察看器察看其中的对象模型,你会发现这个模型用很丰富的属性和方法。有关XML DOM的详细信息,请参阅微软的MSDN。下面是一个使用XML DOM的例子:
<HTML>
<HEAD>
<TITLE>DOM 范例</TITLE>
<SCRIPT LANGUAGE="JavaScript" FOR="window" EVENT="onload">
var source = new ActiveXObject("Microsoft.xmldom");
//创建DOM实例,并装载文件
source.load("report.xml");
var style = new ActiveXObject("Microsoft.xmldom");
style.load("report.xsl");
//将XML文件依XSL文件中的设定转成HTML的输出格式
document.all.item("xml&xsl").innerHTML
=source.transformNode(style.documentElement);
</SCRIPT>
</HEAD>
<BODY>
<DIV ID="xml&xsl"></DIV>
</BODY>
</HTML>
3.在 Visual Basic 中使用 DOM
我们使用下面的 XML 作为例子:
<contacts>
<person>
<name>Mark Hanson</name>
<telephone>206 765 4583</telephone>
</person>
<person>
<name>Jane Smith</name>
<telephone>425 808 1111</telephone>
</person>
</contacts>
可以按如下方式绑定到 ADO 记录集:
(1)创建新的 VB 6.0 项目。
(2)添加对 Microsoft ActiveX Data Objects 2.1 或更高版本、Microsoft
Data Adapter Library 和 Microsoft XML 2.0 版的引用。
(3)用下面的代码将 XML 数据加载到 XML DSO 控件中:
Dim dso As New XMLDSOControl
Dim doc As IXMLDOMDocument
Set doc = dso.XMLDocument
doc.Load ("d:\test.xml")
(4)用下面的代码将 DSO 映射到使用 DataAdapter 的新记录集对象中:
Dim da As New DataAdapter
Set da.Object = dso
Dim rs As New ADODB.Recordset
Set rs.DataSource = da
(5)访问数据:
MsgBox rs.Fields("name").Value
结果显示字符串"Mark Hanson"
|
|
|