- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章XML数据操作界面
在XML中使用JavaScript代码 案例名称:使用JavaScript标记 程序名称:9-20.xml XML的三种应用程序接口 在Java中对XML的解析接口有3大类: 基于DOM(Document Object Model)的解析接口 基于SAX(Simple API for XML)的解析接口 基于JDOM(Java Document Object Model)技术的解析接口 解析接口 DOM即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成了一个对象模型的集合(这个集合通常被称为DOM树),应用程序可以通过对该对象模型的操作,实现对XML文档中数据的操作。 SAX即XML简单应用程序接口。SAX提供了一种对XML文档进行顺序访问的模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,从而完成对XML文档的访问,所以SAX接口也被称作事件驱动接口。 JDOM的处理方式是与DOM类似的操作。是SUN公司发布的一种简单方便的XML处理接口。 解析器 解析器实际上就是一段代码,它读入一个XML文档并分析其结构。我们在这里介绍的是基于Java的解析器。 目前主流的解析器有:JAXP(Java API for XML Processing)、Xerces(Apache)、XML4J(IBM)与xalan等,主流的解析器都支持SAX和DOM。支持JDOM的解析器目前只有SUN公司发布的jdom包。 DOM解析接口 案例名称:DOM树结构 程序名称:9-21.xml ?xml version=1.0 encoding=gb2312 ? addressbook person sex = male name张三/name emailzhs@/email /person person sex = male name李四/name emaills@/email /person /addressbook DOM读取XML文件 第一步:建立一个解析器工厂。 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 第二步:以利用这个工厂来获得一个具体的解析器对象。 DocumentBuilder builder=dbf.newDocumentBuilder(); 第三步:利用DocumentBuilder的parse()方法接受一个XML文档名作为输入参数,返回一个Document对象。Document对象代表了一个XML文档的树模型。 Document doc=builder.parse(candidate.xml); 第四步:使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象,它是XML文档中的标签元素列表,可以使用NodeList对象的item()方法来得到列表中的每一个Node对象。 NodeList nl =doc.getElementsByTagName(PERSON); Element node=(Element) nl.item(i); 第五步:通过Node对象的getNodeValue()方法提取某个标签内的内容。 node.getElementsByTagName(NAME).item(0).getFirstChild().getNodeValue() JSP使用DOM读取XML文件 案例名称:JSP使用DOM读取XML文件 程序名称:9-22.jsp JSP使用DOM创建XML节点 案例名称:JSP使用DOM创建XML节点 程序名称:9-23.jsp SAX解析接口 SAX是一种轻量型的方法。在处理DOM的时候,需要读入整个的XML文档,然后在内存中创建DOM树,生成DOM树上的每个Node对象。 当文档比较小的时候,这不会造成什么问题,但是一旦文档变大,处理DOM就会变得相当费时费力。特别是其对于内存的需求,将是成倍的增长,以至于在某些应用中使用DOM是一件很不经济的事,一个较好的替代解决方法就是SAX。 SAX读取XML文件 SAX解析器工作的过程至少包含3步。 第一步:与DOM一样,需要建立一个解析器工厂。 SAXParserFactory spf = SAXParserFactory.newInstance(); 第二步,创建一个解析器对象。 SAXParser saxParser = spf.newSAXParser(); 第三步,将解析器和XML文档联系起来,开始解析。 saxParser.parse(
文档评论(0)