admin 管理员组

文章数量: 1184232


2024年4月20日发(作者:法克论坛xss源码)

维普资讯

2(108年4月 

湘南学院学报 

Journal ofXiangnan University 

Apt.,2OO8 

V01.29 No.2 

第29卷第2期 

基于ASP. 平台 对XML文件的深度遍历 

于芳 ,胡山泉 ,肖伟东 

(1.湘南学院计算机科学系,湖南郴州423000; 

2.江西工业工程职业技术学院计算机系,江西萍乡 337055) 

摘 要:XML作为网络中跨平台的数据交换的标准格式,在制作符合SCORM(Shared content object referencemode1)标准 

的共享课件中有着重要应用.本文分析了在ASP.船 平台上深度遍历imsmanife ̄t.xml文件的过程,由此获得遍历任意 

XML文档的可行性方法. 

关键词:ASP.NET;XML;深度遍历; 

中图分类号:TP393 文献标识码:A 文章编号:1672—8173{2008}02—0086—04 

l 问题的提出 

SCORM(Shared content object reference mode1)即可共享内容对象参考模型,是美国国防部于1997年启动的 

个称为“高级分布式学习”(ADL:Advanced Distributed Learning)研究项目制订的一种规范.它是为了解决课 

件能够从一个平台迁移到另一个平台,创建可供不同课程共享的可重用构件,以及快速又准确地寻找课程素 

材而提出来的.在整个符合SCORM标准课件的实现过程中,有一个重要环节,即对其内容清单文件 

intsmanifest.xml进行编写,此文件包含了学习对象的元数据信息;资源信息;组织结构信息等.为了判断所制 

作的课件是否符合SCORM标准,同时为了通过管理平台查找资源信息,都必须遍历intsmanifest.xml文件.这 

使得遍历该文件成为一个必须解决的关键性问题. 

2 imsmanifest.xml文件的组成 

清单文件主要由以下几个部分组成: 

1)Meta—data:是一种描述数据的数据,用来描述整个内容包,它提供了一种描述内容包特征的机制; 

2)Organizations:描述在内容包中学习内容的组织形式,SCORM采用内容表的方案来进行组织,它可以包 

含一个或多个组织组件; 

3)Resources:包含了对内容清单中所有实际资源和所需媒体素材的引用,还包括描述资源的元数据和对外 

部文件的引用. 

4)(sub)Manifest(S):嵌套的子清单. 

具体组织结构如以下imsmanifest.xml文件示例: 

<? ml version="1.0"encoding:" 一8"?> 

<manifest identiifer=’’MANIFEST1”version=”1.3”> 

<metadata> 

<se船ma> Z SCDR <Isc船,n口> 

<schemaversion> 1.3</schemaversion> 

收稿日期:2007—11—29 

基金项目:湖南省教育厅科研项目资助(05C632) 

作者简介:于芳(1972一),女,浙江绍兴人,湘南学院计算机科学系副教授,研究方向:计算机网络,远程教育. 

86・ 

维普资讯

</metadata> 

<organizations default=”ORG—F18FE671一AF6E一3384一ADBC一3009817CC46D”> 

<organization identiier=”ORG—F18FE671一AF6E一3384一ADBC一3009817 fCC46D”> 

<title>Theory</title> 

<ite,n identifer:”ITEM一2959E385—8189—68D0—6CFE一95FFB49D5942”> 

<title>Theory 1.1</title> 

</item> 

</organization> 

</organizat;ons> 

<resources> 

<resource> 

<file href=”NR/solution8.p ’/> 

</resource> 

</resources> 

</manifest> 

3 利用DOM深度遍历imsmanifest.xml文件 

DOM(Document Object Mode1)把XML文档当作一种树形结构.每个元素、属性以及XML文件中的文本都 

可以看成树型结构上的节点,因此所有的元素都可以通过这个DOM树进行访问.我们把上面的irsmnanifest. 

xml文件转换成由图表示的DOM树,如图1所示: 

图1 imsmanifest.xmI对应的DOM树 

图2 DOM树深度遍历的完整路径 

现在我们按照一种系统的路径——深度优先搜索(DFS:depthfirst9.search)遍历整个DOM树.深度优先 

搜索遍历是一个递归过程,可叙述为:首先访问一个顶点vi;并将其标记为已访问过,然后从vi的任意一个未 

87 ・ 

维普资讯

被访问过的邻接点出发进行深度优先搜索遍历,当 的所有邻接点均被访问过时,则回退到上一个顶点 k,从 

的另一个未被访问过的邻接点出发进行深度优先搜索遍历,直到退回到初始点并且没有未被访问过的邻接 

点为止.为了进一步说明这种遍历方式中,我们可以这样理解:遍历从父节点开始,到子节点,再到子节点的子 

节点,如此继续,尽可能往深入,直到不能再往下走为止;然后,遍历过程向上回退一层,并进入下一个子节点. 

例如,在前面展示的DOM树中,遍历过程在回退到<manifest/>前,先访问了<metadata/>,然后<schema/ 

>,然后是文本节点“ADL SCORM”,接着回退到<schemaversion/>,然后是文本节点“CAM 1.3”,接着按这种 

思想继续下去.图2显示了遍历过程的完整路径. 

这个完整路径展示了一种有序的自顶向下遍历整个DOM树的方式.最佳的思考深度优先搜索的方法就是从 

第一个节点左边的第一个节点起沿着树的最外沿画线.只要这条线从左侧经过某个节点,那么这个节点就是 

搜索中下一个出现的节点.当我们需要在页面中查找某个特定类型的信息(或者元素),深度遍历XML文档是 

相当有用的. 

4 深度遍历在ASP.J7、7. 平台上的实现 

由于ASP. 引入了一种更加健壮、扩充性更好且更有效的基于WEB的应用程序而成为目前的主流开 

上如何实现对XML文档的深度遍历. 发环境,所以在此我们探讨在ASP. 

ASP. 

XML文档: 

中对XML文档操作最常用的类是XmIDocument.它使用起来非常容易,XmIDocument其实就是一 

个简单的树.使用类XmIDocument之前,我们须引用命名空间System.Xm1.我们可以通过下面的语句来加载 

XmIDocument doc=new XmIDocument(); 

doc.Load(Server.MapPath( 

xml”)); 

”irr ̄smanifest. 

{Re ̄onse.Write(node1.Name+”/n”); 

Re ̄onse.Write(node1.InnerText+”,n”); 

f(niode1.NextSibling!=nul1) 

对于上述imsanimfest.xml文件的遍历,我们依照 

深度遍历的思想,可以参照以下代码来实现: 

public static void (XmINode node1) 

{BIXml(node1.NextSibling);} 

else 

{ (node1.Name==root) 

{ (node1.HasChildNodes==true) 

{Resp0 e.Write(node1.Name+”/n”); 

XmINode childNode=node1.FirstChild; 

{break; 

Response.Write(”End”);} 

} 

BIXml(childNode); 

} 

Z e 

} 

} 

5 对任意XML文档的遍历 

imsmanife t. mf文件是基于不同用户在课件制作过程中编辑产生或由相关软件自动生成的,其层次未 

知,节点个数未知,于是我们可以考虑将此深度遍历思想用于任意XML ̄.档,实验证明,其遍历效果是有效的, 

可行的. 

6 结束语 

对 化文档进行遍历,其实质就是对一个文件进行读的操作,这将会引出一个严重的显示效率问题。但我 

们可以考虑在后台开启线程,当第一次加载文档的时候,立即产生并激活一个线程,并且根据程序运行的状态 

和条件来控制线程的状态,这能使我们达到一个较为满意的效果. 

参考文献: 

[1](美)沃尔森著,汤涛译.ASP.NET揭秘(第二版)[M].北京:中国电力出版社,2O04. 

[2]DanWahlin著,王宝良译.基于XML的ASP.NET开发[M].北京:清华大学出版社,2O02. 

88 ・ 

维普资讯

[3](美)艾米尔诺,(美)德克鲁兹著,焦瑜净,闫雷鸣译.XML案例解析教程——提出问题——分析问题——解决方案[M].北 

京:清华大学出版社,2007. 

[4](美)维斯著,张怀勇,等译.数据结构与算法分析C++描述[M].北京:人民邮电出版社,20O7. 

The Depth—traversing of XML Document Based on ASP.NET 

YU Fang ,HU Shan-quan ’XIAO Wei-dong 

(1.Department of Computer Science,Xaangnan University,Chenzhou 423000,China; 

2.Jiangxi Vocatioral College of ̄dmtry and Engincel'mg,Pingxiang 337055,Ctana) 

Abstract:XML is the standard format for CroSs—platform data exchange in intemet and is signiicafnt applied in 

producing sharing courseware accord with SCORM。The process of depth—traversing on imsmanifest.xml base on 

ASP.NET is analyzed in this paper.Meanwhile,it helps to provide the possibilities to traverse any XML Doeu— 

ment. 

Key words ̄ASP.NET;XML;depth—traversing 

湖南省高校自然科学学报学术研讨会在郴州召开 

2008年4月18—21日,湖南省科技期-71J编辑学会在郴州举行了全省高校自然科学学报学术研讨会.研讨 

会由学会副理事长、中南大学出版社社长王海东教授主持,到会的领导有:学会副理事长、湖南大学期-71J社社 

长王道平教授,省科技期刊编辑学会副理事长、湖南农大期刊社社长熊楚才编审,学会常务理事、副秘书长、湖 

南省首j比新闻出版领军人才、中南大学出版社陈灿华编审,学会常务理事、副秘书长、湖南师范大学期-71J社沈 

小玲编辑,常务理事、中南林业科技大学期-71J社社长邓白罗教授,常务理事、中南林业科技大学期-71J社社长邓 

白罗教授,常务理事、湖南工业职业技术学院胡新华编审等.各会员单位从事自科学报(含医学学报)的主编、 

编辑共37人参加了会议. 

湘南学院对会议的召开给予了大力支持.院长曹石珠教授到宾馆看望各位领导和代表;副院长陈家玉教 

授参加了开幕式并致辞,他介绍了近年来湘南学院建设和发展的情况,并代表湘南学院党委和行政对会议的 

召开表示衷心的祝贺,对各位代表的光临表示热烈的欢迎. 

会上,王海东副理事长传达了即将举行的第二届全国高校精品・优秀・特色科技期-71J评比的有关精神,并 

围绕当前我省高校学报出版工作面临的机遇与挑战、网络技术在高校期刊出版中的地位与作用以及提高高校 

学报编校质量的具体途径等提出了具体的意见和要求.中南林业科技大学期刊社邓白罗教授、湘南学院学报 

编辑部文耀智教授、湖南工程学院学报编辑部贺香梅主任等作了中心发言.与会代表就会议议题进行了热烈 

讨论与交流. 

会后,代表们到国家森林公园——莽山考察,在感受郴州自然美景、体验郴州人民好客热情的同时,也亲 

眼见证了郴州遭受冰雪劫难后的凄美景象,表示要学习郴州人民勇于面对困难、战胜灾害的大无畏精神,推进 

学术创新,提高办刊质量,为我省科技学报更上层楼做出我们应有的贡献. 

(李映山) 

89 ・ 


本文标签: 遍历 深度 学报