使用ASP访问XML文件
内容提示:XML标准正在为越来越多的软件厂商所接受,Microsoft作为力推XML的厂商之一,为XML的推广做出了大量的贡献。它的文档对象模型(DOM)为XML的存取提供了很多方便使用的方法。
XML和数据库有很多相似之处,它们都是结构化的存储信息的途径。数据库用记录和字段组成的表格存储信息,这样就允许方便地访问和搜索。XML文件也可以按照类似的结构化方式来存储信息。而XML作为一个统一的标准,不会像数据库系统那样因为数据库的不同而造成数据传递的困难。XML可以从一种数据库中取出数据,并将数据上传到完全不同的数据库中,例如可以将数据从服务器A上的Oracle数据库传送给服务器B的SQL数据库。本文讨论如何使用动态服务页面(Active Server Pages, ASP)将XML文件中的数据写入数据库。
本文的实例在Windows 2000、SQL Server 7.0、IE5.0平台上测试通过。
数据说明
本例使用的数据库ST中的students表结构为:
字段名 字段类型 字段宽度
Name Char 10
Birthday Datetime 8
Score Int 4
XML文件students.xml如下:
Tom
1976-2-15
92
alice
1978-4-18
99
技术说明
使用ASP访问XML文件有两种方式:
● 作为文本流的简单结构文件;
● 作为XML DOM对象。
本文使用的是第二种方式,DOM中常用的方法和属性有:
1. CreateObject()方法与load()方法
为给出的文件创建DOM,首先要使用CreateObject()方法创建DOM的实例。下面是如何使用ASP在服务器上创建DOM的例子:
set oXMLDOM=server.CreateObject ("Microsoft.XMLDOM")
XML DOM被创建后,它必须装入一个XML文件。例如:
oXMLDOM.load("d:\students.xml")
创建了DOM对象并载入了XML文件后,就可以使用DOM的方法和属性来访问文件了。
2. getElementsByTagName()方法
Document对象的getElementsByTagName方法可以取得所有具有所传参数指定的名字的后续元素的列表,它返回一个NodeList对象。
例如: set recordlist=oXMLDOM.getElements-
ByTagName("student")
3. item()方法
nodeList对象的item()方法将一个索引作为参数,返回这个索引位置上的节点。如果这个索引超出了范围,那么就返回空值。注意:计数器总是从零开始。
4.Length属性
nodeList对象的Length属性返回一个无符号的长整数,为NodeList中节点的个数。
5.Childnodes属性
Childnodes是node对象的一个属性,它返回这个节点的所有子节点的NodeList。
例如: recordlist.item(i).childnodes.item(j)
.text指的是第i+1个student的第j+1个子节点的值(因为计数器总是从零开始)。假设i=1,j=0,则recordlist.item(i).childnodes.item(j).text的值为"alice",即为第2个student的第1个子节点(name)的值。