不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
使用ASP访问XML文件
编辑:dnawo 日期:2006-12-07
XML标准正在为越来越多的软件厂商所接受,Microsoft作为力推XML的厂商之一,为XML的推广做出了大量的贡献。它的文档对象模型(DOM)为XML的存取提供了很多方便使用的方法。
XML和数据库有很多相似之处,它们都是结构化的存储信息的途径。数据库用记录和字段组成的表格存储信息,这样就允许方便地访问和搜索。XML文件也可以按照类似的结构化方式来存储信息。而XML作为一个统一的标准,不会像数据库系统那样因为数据库的不同而造成数据传递的困难。XML可以从一种数据库中取出数据,并将数据上传到完全不同的数据库中,例如可以将数据从服务器A上的Oracle数据库传送给服务器B的SQL数据库。本文讨论如何使用动态服务页面(Active Server Pages, ASP)将XML文件中的数据写入数据库。
一、数据说明
1.本例使用的数据库ST中的students表结构为:
字段名 字段类型 字段宽度
Name Char 10
Birthday Datetime 8
Score Int 4
2.XML文件students.xml如下:
<?xml version="1.0"?>
<class>
<student>
<name>Tom</name>
<born>1980-02-15</born>
<sex>boy</sex>
</student>
<student>
<name>Lily</name>
<born>1981-05-08</born>
<sex>girl</sex>
</student>
<student>
<name>Jie</name>
<born>1983-11-15</born>
<sex>boy</sex>
</student>
<student>
<name>Mary</name>
<born>1984-9-21</born>
<sex>girl</sex>
</student>
</class>
二、技术说明
使用ASP访问XML文件有两种方式:
● 作为文本流的简单结构文件;
● 作为XML DOM对象;
本文使用的是第二种方式,DOM中常用的方法和属性有:
1. CreateObject()方法与load()方法
为给出的文件创建DOM,首先要使用CreateObject()方法创建DOM的实例,然后装入一个XML文件:
set oXMLDOM=server.CreateObject ("Microsoft.XMLDOM")
oXMLDOM.load("d:\students.xml") '必须使用绝对路径
创建了DOM对象并载入了XML文件后,就可以使用DOM的方法和属性来访问文件了。
2. getElementsByTagName()方法
Document对象的getElementsByTagName方法可以取得所有具有所传参数指定的名字的后续元素的列表,它返回一个NodeList对象:
set recordlist=oXMLDOM.getElementsByTagName("student")
3.Childnodes属性
Childnodes是node对象的一个属性,它返回这个节点的所有子节点的NodeList:
recordlist.item(i).childnodes.item(j).text
text指的是第i+1个student的第j+1个子节点的值(因为计数器总是从零开始)。假设i=1,j=0,则recordlist.item(i).childnodes.item(j).text的值为"Lily",即为第2个student的第1个子节点(name)的值。
4. item()方法
返回这个索引位置上的节点,如果这个索引超出了范围,那么就返回空值。注意:计数器总是从零开始。
5.Length属性
返回一个无符号的长整数,为节点的个数。
三、程序说明
下面的程序访问XML文件students.xml,并将其数据写入数据库ST的students表中。为了使程序尽量简洁,假设空表students已存在于数据库ST中。程序的实现步骤如下:
1.连接数据库ST,打开表students,创建Recordset对象
Set conn=server.CreateObject("ADODB.connection")
conn.Open "dsn=st;uid=sa;pwd=;database=st"
Set myrecord=server.createobject("ADODB.Recordset")
myrecord.open "students",conn,1,3
2.创建DOM的实例oXMLDOM
set oXMLDOM=server.CreateObject ("Microsoft.XMLDOM")
3.载入XML文件students.xml
oXMLDOM.load("d:\students.xml")
4.使用DOM的getElementsByTagName()方法创建所有student元素的节点清单
set recordlist=oXMLDOM.getElementsByTagName("student")
5.使用一个双重循环将XML文件中的数据读出,写入数据库表中
for i=0 to recordlist.length-1
for j=0 to recordlist.item(i).childnodes.length-1
sp(j)= recordlist.item(i).childnodes.item(j).text
next
myrecord.AddNew
myrecord("name").value=sp(1)
myrecord("birthday").value=cdate(sp(3))
myrecord("score").value=cint(sp(4))
myrecord.Update
next
6.关闭所创建的实例与对象
set oxmldom=nothing
set recordlist=nothing
myrecord.Close
Set myrecord=nothing
四、小 结
通过本文,我们可以看到XML和数据库具有很紧密的联系,ASP在连接XML和数据库之间起到重要的作用,可以使用XML作为不同数据存储之间的中介,也可以使用XML本身作为一种数据存储方式。
XML和数据库有很多相似之处,它们都是结构化的存储信息的途径。数据库用记录和字段组成的表格存储信息,这样就允许方便地访问和搜索。XML文件也可以按照类似的结构化方式来存储信息。而XML作为一个统一的标准,不会像数据库系统那样因为数据库的不同而造成数据传递的困难。XML可以从一种数据库中取出数据,并将数据上传到完全不同的数据库中,例如可以将数据从服务器A上的Oracle数据库传送给服务器B的SQL数据库。本文讨论如何使用动态服务页面(Active Server Pages, ASP)将XML文件中的数据写入数据库。
一、数据说明
1.本例使用的数据库ST中的students表结构为:
字段名 字段类型 字段宽度
Name Char 10
Birthday Datetime 8
Score Int 4
2.XML文件students.xml如下:
<?xml version="1.0"?>
<class>
<student>
<name>Tom</name>
<born>1980-02-15</born>
<sex>boy</sex>
</student>
<student>
<name>Lily</name>
<born>1981-05-08</born>
<sex>girl</sex>
</student>
<student>
<name>Jie</name>
<born>1983-11-15</born>
<sex>boy</sex>
</student>
<student>
<name>Mary</name>
<born>1984-9-21</born>
<sex>girl</sex>
</student>
</class>
二、技术说明
使用ASP访问XML文件有两种方式:
● 作为文本流的简单结构文件;
● 作为XML DOM对象;
本文使用的是第二种方式,DOM中常用的方法和属性有:
1. CreateObject()方法与load()方法
为给出的文件创建DOM,首先要使用CreateObject()方法创建DOM的实例,然后装入一个XML文件:
set oXMLDOM=server.CreateObject ("Microsoft.XMLDOM")
oXMLDOM.load("d:\students.xml") '必须使用绝对路径
创建了DOM对象并载入了XML文件后,就可以使用DOM的方法和属性来访问文件了。
2. getElementsByTagName()方法
Document对象的getElementsByTagName方法可以取得所有具有所传参数指定的名字的后续元素的列表,它返回一个NodeList对象:
set recordlist=oXMLDOM.getElementsByTagName("student")
3.Childnodes属性
Childnodes是node对象的一个属性,它返回这个节点的所有子节点的NodeList:
recordlist.item(i).childnodes.item(j).text
text指的是第i+1个student的第j+1个子节点的值(因为计数器总是从零开始)。假设i=1,j=0,则recordlist.item(i).childnodes.item(j).text的值为"Lily",即为第2个student的第1个子节点(name)的值。
4. item()方法
返回这个索引位置上的节点,如果这个索引超出了范围,那么就返回空值。注意:计数器总是从零开始。
5.Length属性
返回一个无符号的长整数,为节点的个数。
三、程序说明
下面的程序访问XML文件students.xml,并将其数据写入数据库ST的students表中。为了使程序尽量简洁,假设空表students已存在于数据库ST中。程序的实现步骤如下:
1.连接数据库ST,打开表students,创建Recordset对象
Set conn=server.CreateObject("ADODB.connection")
conn.Open "dsn=st;uid=sa;pwd=;database=st"
Set myrecord=server.createobject("ADODB.Recordset")
myrecord.open "students",conn,1,3
2.创建DOM的实例oXMLDOM
set oXMLDOM=server.CreateObject ("Microsoft.XMLDOM")
3.载入XML文件students.xml
oXMLDOM.load("d:\students.xml")
4.使用DOM的getElementsByTagName()方法创建所有student元素的节点清单
set recordlist=oXMLDOM.getElementsByTagName("student")
5.使用一个双重循环将XML文件中的数据读出,写入数据库表中
for i=0 to recordlist.length-1
for j=0 to recordlist.item(i).childnodes.length-1
sp(j)= recordlist.item(i).childnodes.item(j).text
next
myrecord.AddNew
myrecord("name").value=sp(1)
myrecord("birthday").value=cdate(sp(3))
myrecord("score").value=cint(sp(4))
myrecord.Update
next
6.关闭所创建的实例与对象
set oxmldom=nothing
set recordlist=nothing
myrecord.Close
Set myrecord=nothing
四、小 结
通过本文,我们可以看到XML和数据库具有很紧密的联系,ASP在连接XML和数据库之间起到重要的作用,可以使用XML作为不同数据存储之间的中介,也可以使用XML本身作为一种数据存储方式。
评论: 1 | 引用: 0 | 查看次数: 4589
发表评论
请登录后再发表评论!