admin 管理员组

文章数量: 1184232


2024年4月20日发(作者:instructed sla (isla))

维普资讯

2007年3月 浙江纺织服装职业技术学院学报 第l期第69页 

ASP环境下XML的实现 

项 力 

摘要:随着XML技术的发展,用XML表示的信息也将普遍存在。XML将是新一代网络数据显示与运行的关键技术。 

本文介绍了一种在ASP中通过文件对象模型DOM(XML的一种应用程序接口)访问XML的方法。 

关键词:XML;DOM;使用 

中图分类号:TP393.09 

文献标识码:0 文章编号:1671—9751(2007)01-0069-03 

XML简介 

或HTML文件中所有的数据。因为在结构化文件 

中,数据是按层次化的树状结构组成的,所以结构 

XML(Extensible Markup Language)是一种 

基于文本格式的标记语言,它注重对数据结构和数 

据意义的描述,实现数据内容和显示样式的分离, 

而且与平台无关。由于XML注重数据内容的描述, 

因而,对于数据的检索非常有意义,使我们不会再 

象HTML那样,检索出与要求无关的信息。另一 

方面,XML文件是数据的载体,利用它作为数据 

库,不需要访问任何数据库系统,我们可以使用任 

意WEB技术来显示数据,比如HTML,Flash5等。 

对XML文档的处理有统一的应用程序接口 

(API),一种是基于文档树的DOM标准,一种是 

化文件的模型也一定是树状的。DOM解析器将 

XML文档一次性解析,生成一个位于内存中的对 

象树用以描述该文档。 

利用DOM,可以动态地创建文档,遍历文档 

结构,添加、修改、删除文档内容,改变文档的显 

示方式等等。可以这样说,文档代表了文档中的数 

据,而DOM则代表了如何去管理这些数据的方法。 

三、XMLDOM的使用 

我们以一个简单的网上调查系统为例,来具体 

探讨在ASP环境中调用DOM接口来实现对XML 

的控制,并利用XML数据来存储信息,达到同用 

数据库存储数据的功能。在这个调查系统中,我们 

要实现如下功能:调查内容的显示与接受用户的投 

票,以及显示投票结果;增加、删除与修改调查。 

基于事件的SAX。在这里我们主要探讨在ASP环 

境中怎样用DOM来控制XML。 

二、DOM简介 

DOM(Document Object Mode1)即文档对象模 

型,是HTML文档以及XML文档的应用程序接 

口,是一种与平台和语言无关的接口。它允许程序 

和脚本动态访问和修改文档的内容、结构和类型。 

DOM中的最基本对象是Node,从它又衍生出许多 

类型的Node,有Document,Element,Attribute等。 

这些Node会组成一个树状结构,其中包含XML 

(一)建立存储调查信息的XML文件 

(Pol1.xm1),并以此进行讨论。 

<?xml version ”1.0”encoding ”GB23 1 2”?> 

<polllist> 

<poll time ”2006—06—06”> 

<name>调查名:关于学习资源库的建设 

收稿日期:2006—12—14 

作者简介:项力,男, 浙江纺织服装职业技术学院 (浙江宁波315211) 

维普资讯

第1期第7O页 

name.> 

项力:ASP环境下XML的实现 2007年3月 

首先,根据树形图获取根结点:Setroot=pol— 

llist.documentElement 

<type>调查类型:资源建设</type> 

<author email ”xiangli@zjf.net”neta,ddress 

”172.31.9.222”netname=”教育快活王”>项力</auth- 

其次,判断是否有子结点信息:if 

root.haschildnodes 0 then。若没有,则显示错误 

or> 

<content> 

<item hit=”15”>学习资源库的建设重在内容 

item> 

<item hi=t”26”>学习资源库的建设重在使用</ 

item> 

/<content> 

<directions>本调查旨在了解学习资源库建设 

的方向</directions> 

/<poll> 

</polllist> 

(二)建立显示XML数据的ASP文件 

这个文件要实现的功能就是读取并显示XML 

数据,首先创建一个XML对象然后把XML读入 

内存中,利用DOM分离出我们所要的数据。 

1.建立和加载一个DOM对象 

首先创建一个DOM对象,以此获得了对XML 

文档进行操作的入口;然后加载XML文件,具体 

方法为: 

Set polllist=server.CreateObject(”microso— 

1f.xmldom”) 

polllist.async False 

polllist.1oad(Server.MapPath(”pol1.xml”)) 

2.DOM树的访问 

在文档加载完毕之后就可以使用documentEle— 

ment属性访问根元素,一旦建立了对DOM树中 

某个节点(例如根节点)的引用,就可以根据节 

点问的等级关系调用适当的方法进行遍历。然后在 

该XML文档中定位到指定的调查内容,遍历所有 

调查项目,让它以特定的格式显示出来。 

Pol1.xml生成的树形结构如图所示: 

信  ̄<%else response.write”当前没有调查!”%>。 

若存在,则遍历各子结点: 

Set pollNode=root.childNodes.item(number) 

Set nameNode=pollNode.childNodes.item(0) 

Set typeNode pollNode.childNodes.item(1) 

Set authorNode=pollNode.childNodes.tiem(2) 

Set contentNode=pollNode.childNodes.item(3) 

Set directionsNode=pollNode.childNodes.item 

(4) 

然后在特定的地方显示出来,方法如下: 

<%response.write”<form name='of瑚‘method= 

‘post‘action=‘dopol1.asp?number=”&number&”‘× 

table width=280 border='l‘align=‘center‘border— 

color=BLACK bgcolor=’#E8F1E3‘>” 

Set textNode=nameNode.childNodes.item(O) 

name=textNode.nodeValue 

response.write”<tr bgcolor=‘#O00099'><td bor- 

dercolor=BLUE><div alig11:‘center。><font color='# 

FFFFFF‘size=5>”&name&”</font></div></td></tr> 

”%l> 

依此方法显示其它结点值。值得注意的是对 

comem结点值的显示,可用循环方法实现: 

<%for i=0 to contentNode.childnodes.1ength.1 

set itemnode=contentnode.childnodes.item(i) 

Set textNode=itemNode.childNodes.item(0) 

item=textNode.nodeValue 

response.write”<tr><td bordercolor=BLUE>< 

div><input type=‘radio‘name= item‘value=”&i&”>” 

&item&“</div></td></tr>” 

next%> 

(三)接收用户投票 

接收用户投票过程即是修改xML文件的过程。 

在这里只要把用户选中的调查项目对应的hit属性 

值加1,再把修改过的内容保存好就行了。 

Set root=polllist.documentElement 

Set pollNode=root.childNodes.item(number) 

set contentnode=pollnode.childnodes.item(3) 

set itemnode=contentnode.childnodes.item(item) 

维普资讯

2007年3月 浙江纺织服装职业技术学院学报 第1期第71页 

Set attr=itemNode.attributes.getNamedItem(-t 

contentNode.childNodes.item(0).appendChild 

hit”) 

attrContent=attr.nodeValue 

(textNode) 

attrcontent=cint(attrcontent)+1 

attr.nodevalue=attrcontent 

使用node接口的remow ̄Child方法可以删除 

DOM树的结点。如果想删除根下的结点,具体方法 

是:set o1dllode root.removeChild(root.childNodes. 

Item(0)) 

四、结束语 

polllist.save(Server.MapPath(”pol1.xml”)) 

(四)增加和删除结点 

使用node接口的appendChild方法可以为 

DOM树增加结点,但事先要先创建元素结点。建 

立元素结点的方法是document接口的createE1. 

ement方法,然后再在指定位置插入结点,用node 

接口的insertBefore方法进行。 

DOM确实是功能强大,特别是表现在它对 

XML的控制上,更是几近完美。只要对XML文 

档的结构有一个基本了解,再利用DOM的强大功 

能,我们就可以方便地在ASP应用服务器端解析 

XML文档,从解析结果中选择合适的内容发送给 

客户端。它适用于任何语言环境,而且使用方便, 

值得推广应用。 

参考文献 

如要为调查增加一个项目,内容为“其他”: 

先创建一个名为item的元素,把它作为子元素插 

入到content元素中,然后再创建一个内容为“其 

他”的文本结点追加到刚插入的item节点。 

下面是在已经创建的DOM对象Polllist的结 

构中增加结点的方法。 

Set contentNode=root.childNodes.item(3) 

[1]黄泳瑜,徐蕙英.《)【ML网页设计应用基础教程》[M].北 

京:中国铁道出版社,2006. 

[2]丘广华,张文敏.《 L编程实例教程》[M].北京:科学出 

Set newNode=polllist.createElement(”item”) 

Set rtnNode=node.insertBefore(newNode,con— 

tentNode.ifrstChild) 

版社,2004. 

[3]陈勤意.《陈长念网页设计梦之队丛书——)【ML&AsP网页 

程序设计》[M].北京:清华大学出版社,2001. 

Set textNode=polllist.createTextNode(”其他”) 

The ReaIization of XML under ASP Environment 

XIANG Li 

Abstract:With the development ofXML technique,information expressed in XML will widely exist.XML 

will be a key technique of showing and running network data in new generation.This paper ntiroduces n印一a 

proach to visit XML n iASP through Document Object Model…an application program interface ofXML. 

Key words:XML;DOM;application 

(责任编辑陈超拔) 


本文标签: 文档 显示 数据 内容 调查