- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java与XML联合编程之DOM篇
Java与XML联合编程之DOM篇 作者:扬帆 ?[2002-04-03]
返 回 | 关 闭
DOM初步?DOM是Document?Object?Model的缩写,即文档对象模型。前面说过,XML将数据组织为一颗树,所以DOM就是对这颗树的一个对象描叙。通俗的说,就是通过解析XML文档,为XML文档在逻辑上建立一个树模型,树的节点是一个个对象。我们通过存取这些对象就能够存取XML文档的内容。?下面我们来看一个简单的例子,看看在DOM中,我们是如何来操作一个XML文档的。?这是一个XML文档,也是我们要操作的对象:??xml?version=1.0?encoding=UTF-8?messagesmessageGood-bye?serialization,?hello?Java!/message/messages?下面,我们需要把这个文档的内容解析到一个个的Java对象中去供程序使用,利用JAXP,我们只需几行代码就能做到这一点。首先,我们需要建立一个解析器工厂,以利用这个工厂来获得一个具体的解析器对象:?DocumentBuilderFactory?dbf?=?DocumentBuilderFactory.newInstance();?我们在这里使用DocumentBuilderFacotry的目的是为了创建与具体解析器无关的程序,当DocumentBuilderFactory类的静态方法newInstance()被调用时,它根据一个系统变量来决定具体使用哪一个解析器。又因为所有的解析器都服从于JAXP所定义的接口,所以无论具体使用哪一个解析器,代码都是一样的。所以当在不同的解析器之间进行切换时,只需要更改系统变量的值,而不用更改任何代码。这就是工厂所带来的好处。这个工厂模式的具体实现,可以参看下面的类图。?DocumentBuilder?db?=?dbf.newDocumentBuilder();?当获得一个工厂对象后,使用它的静态方法newDocumentBuilder()方法可以获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器。但具体是哪一种解析器,微软的或者IBM的,对于程序而言并不重要。?然后,我们就可以利用这个解析器来对XML文档进行解析了:?Document?doc?=?db.parse(c:/xml/message.xml);?DocumentBuilder的parse()方法接受一个XML文档名作为输入参数,返回一个Document对象,这个Document对象就代表了一个XML文档的树模型。以后所有的对XML文档的操作,都与解析器无关,直接在这个Document对象上进行操作就可以了。而具体对Document操作的方法,就是由DOM所定义的了。?点击可放大Jaxp支持W3C所推荐的DOM?2。如果你对DOM很熟悉,那么下面的内容就很简单了:只需要按照DOM的规范来进行方法调用就可以。当然,如果你对DOM不清楚,也不用着急,后面我们会有详细的介绍。在这儿,你所要知道并牢记的是:DOM是用来描叙XML文档中的数据的模型,引入DOM的全部原因就是为了用这个模型来操作XML文档的中的数据。DOM规范中定义有节点(即对象)、属性和方法,我们通过这些节点的存取来存取XML的数据。?从上面得到的Document对象开始,我们就可以开始我们的DOM之旅了。使用Document对象的getElementsByTagName()方法,我们可以得到一个NodeList对象,一个Node对象代表了一个XML文档中的一个标签元素,而NodeList对象,观其名而知其意,所代表的是一个Node对象的列表:?NodeList?nl?=?doc.getElementsByTagName(message);?我们通过这样一条语句所得到的是XML文档中所有message标签对应的Node对象的一个列表。然后,我们可以使用NodeList对象的item()方法来得到列表中的每一个Node对象:?Node?my_node?=?nl.item(0);?当一个Node对象被建立之后,保存在XML文档中的数据就被提取出来并封装在这个Node中了。在这个例子中,要提取Message标签内的内容,我们通常会使用Node对象的getNodeValue()方法:?String?message?=?my_node.getFirstChild().getNodeValue();?请注意,这里还使用了一个getFirstChild()方法来获得message下面的第一个子Node对象。虽然在message标签下面除了文本外并没有其它子
您可能关注的文档
- 2014.6李树德--无菌制剂 [法规和技术] 发展趋势.pdf
- 2014微课制作方法和技巧-国培.pdf
- 2014药事管理和法规重点考点总结1.pdf
- 2014高考生物一轮复习高频考点通关讲练:1.4核酸、糖类和脂质.ppt
- 2014版高考语文模拟试卷精编选题.pdf
- 2015 热射病规范化诊断和治疗专家共识(草案).pdf
- 2015.1.北京DRGs研究和应用情况(15省区市协作组).ppt
- GML、SVG、VML三者的关系与区别比较.docx
- FTTH技术原理.pdf
- 2014年二级注册结构工程师专业考试真题上下午卷(统计大家解答).pdf
- Java、JSP时间问题汇总.doc
- 2016年人大社会医学和卫生事业管理考研复试分数线.pdf
- 2016尔雅化学和人类__期末考试满分答案.doc
- 2016年一建《项目管理》精选模拟题和答案(二).pdf
- 2016年中级经济师《公路运输》真题和答案.pdf
- 2016年党史知识竞赛试题和答案.doc
- 2016年八年级语文下册 第五单元 21《和朱元思书》中考真题 (新版)新人教版.doc
- 2016年八年级语文下册 第五单元 21《和朱元思书》练习 (新版)新人教版.doc
- 2016年北京工商大学化妆品科学和技术考研专业目录招生人数参考书目历年真题复试分数线答题方法.pdf
- 2016年一建《市政公用工程管理和实务》重点考点总结【考点全覆盖】.pdf
文档评论(0)