资源描述:
《基于dom与sax的数据存取技术研究与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、中图分类号:TP311文献标识码:A文章编号:1009-2552(2009)02-0051-04基于DOM与SAX的数据存取技术研究与实现李发英(湘南学院计算机科学系,郴州423000)摘要:为了满足基于WEB的复杂应用,出现了XML。由于它具有可扩展性和简单性,使得与XML相关的技术不断成熟。详细讨论了基于XML实现分布式环境下数据存取方法,重点介绍了基于DOM和SAX的数据存取机制及其实现。关键词:DOM;SAX;XML;分布式计算ResearchandimplementationofdataaccessmethodbasedonDOMandSAXLIFa2ying
2、(DepartmentofComputerScience,XiangnanUniversity,Chenzhou423000,China)Abstract:InordertorealizecomplexWEBapplication,XMLisdesigned.XMLisfeaturedbyitsextensibilityandsimplicity.Atthesametime,mostofthetechnologiesrelatedtoXMLaremature.DatastoragemethodbasedonXMLindistributedenvironmentisdis
3、cussed.EspeciallythemechanismandrealizationofDOMandSAXtechnologyareemphasized.Keywords:DOM;SAX;XML;distributedcomputation0引言1基于XML的数据存取机制从1996年开始W3C(WorldWideWebConsortium)基于XML的数据存取方法有多种,一是读取的一个工作组致力于设计一个超越HTML能力范围XML文档的数据内容或将数据写入XML文档中,即的新语言,这个语言后来被命名为XML(Extensible对数据源本身是纯XML文档;二是从关系型
4、数据库MarkupLanguage)即可扩展标记语言。1998年2月中读取数据,然后将数据以XML文档格式存储。针W3C发布了XML1.0作为其推荐标准,它给分布式对第一种情况,通常使用DOM或SAM技术实现数计算环境下的大规模Web应用注入了新的活力。据的存取,DOM是W3C的一种技术标准,实际上是由于XML具有可扩展性、简单易懂的优点,提供一组API来存取XML数据。DOM可以通过XML将数据内容描述与显示方式分离,使用XML来JavaScript,VBScript等脚本程序来实现。也可通过描述数据可以实现不同平台间数据信息的交换,对C++,Java等高级语言来实现
5、。于不同平台的应用无须编写专门的应用软件,当系1.1基于DOM读取XML数据统升级或改动时,也不用重新改写应用程序。只要对于XML文档,可以通过DOM(DocumentObject在互相传递信息的应用系统上挂有XML解析器,就Model)即文档对象模型,读取XML文档中的节点,这是最基本也是最底层的XML存取技术。DOM技可以解读标记数据。从整个数据交换流程来看,XML文档起到一个中间组件的作用,XML技术在提收稿日期:2008-07-10供通用数据交换、变革WEB发布和改造分布式计算作者简介:李发英(1972-),女,讲师,研究方向为基于本体的Web方面起到了重要作用
6、。服务,分布式计算环境,语义Web和Web服务匹配。—51—术对XML的存取是通过在内存中生成对象树来实(3)用于遍历bookinfo.xml的关键代码现访问XML文档的一种方法。DOM是应用程序访在本例中,使用的脚本语言是VBScript问XML文档的编程API,该API包含了用于遍历document.write(″遍历节点树示例″)XML文档节点信息,修改文档数据信息和动态存取document.write(″″)XML文档等一系列方法。应用程序开发人员可以SetxmlDoc=createObject(″Microsoft.XMLDOM″)在任何平台、任何编
7、程语言环境下使用DOMAPI,由xmlDoc.async=″false″于DOM是基于对象树对XML文档的访问,因此在xmlDoc.load(″bookinfo.xml″)使用DOMAPI时首先要创建一个DOM对象,假设setroot=xmlDoc.documentElement被访问的XML文档是bookinfo.xml,以下代码为遍document.write(″根节点:″&root.nodename)历XML文档:document.write(″″)(1)XML文档bookinfo.xml如下:setchild01=roo