帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > ASP编程
如何使用ASP访问XML文件
作者:佚名 发布时间:2005-04-02 来源:不详
 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)的值。

程序说明

下面的程序访问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.getElementsByTag-

Name(“student”)

5.使用一个双重循环将XML文件中的数据读出,写入数据库表中

’用外循环遍历各student

for i=0 to recordlist.length-1

’用内循环取得每个student的各节点的值,存入数组sp

for j=0 to recordlist.item(i).childnodes

.length-1

sp(j)= recordlist.item(i).childnodes

.item(j).text

next

’在表students中增加一条记录,并将数组sp的值写入各字段(注意数据类型的转变)

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标准正在为越来越多的软件厂商所接受,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)的值。

程序说明

下面的程序访问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.getElementsByTag-

Name(“student”)

5.使用一个双重循环将XML文件中的数据读出,写入数据库表中

’用外循环遍历各student

for i=0 to recordlist.length-1

’用内循环取得每个student的各节点的值,存入数组sp

for j=0 to recordlist.item(i).childnodes

.length-1

sp(j)= recordlist.item(i).childnodes

.item(j).text

next

’在表students中增加一条记录,并将数组sp的值写入各字段(注意数据类型的转变)

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本身作为一种数据存储方式。


  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·如何利用ASP给主页加密  (2005-04-02)
 ·Asp中如何设计跨越域的Cookie  (2005-04-02)
 ·如何在ASP中调用DLL  (2005-04-02)
 ·Asp.net 中服务端控件事件是如何  (2005-04-02)
 ·ASP教程17:ADO 存取数据库时如何  (2005-04-02)
 ·如何写作PHP程序  (2005-04-02)
 ·如何获得PHP相关资料  (2005-04-02)
 ·PHP中如何Header出状态代码  (2005-04-02)
 ·如何用php实现广告的反复播放  (2005-04-02)
 ·如何用php调用Java对象的方法  (2005-04-02)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·在ASP中使用数据库
·使用ASP脚本技术
·通过启动脚本来感受ASP的力量
·学习使用ASP对象和组件
·解析asp的脚本语言
·初看ASP-针对初学者
·ASP开发10条经验总结
·ASP之对象总结
·ASP与数据库应用(给初学者)
·关于学习ASP和编程的28个观点
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统