仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1275|回复: 18
打印 上一主题 下一主题

[学习教程] JAVA网页编程之用JDom轻松整合Java和XML

[复制链接]
莫相离 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:36:41 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
java比较简单,没有C++的烦琐,但学习时最好有C++为基础.与JSP和SQL起应用,功能强大.dom|xml 概述:

  Jdom是用Java言语读、写、操纵XML的新API函数。JasonHunter和BrettMcLaughlin公然公布了它的测试版本。在直觉、复杂和高效的条件下,这些API函数被最年夜限制的优化。在接上去的篇幅里,Hunter和McLaughlin先容怎样用Jdom往读写一个已存在的XML文档。

  Jdom是一个开源的api,它以间接易懂的体例向java程序员形貌XML文档和文档的内容。就象名字展现的那样,Jdom是为java优化的。为利用XML文档供应一个低损耗的办法。Jdom的利用者能够不用把握太多的XML的常识就能够完成想要的操纵。

  Jdom能够和已有的XML手艺如SimpleAPIforXML(SAX)和DocumentObjectModel(DOM)互相合作.但是,它并非复杂的从这些api中提掏出一些。Jdom从这些已存在的手艺中吸取了好的方面,本人创建了一套新的类和接口,用一个Jdom用户的话来讲就是:“这些接口是我从一入手下手浏览org.w3c.dom就等候的”;Jdom能够读进SAX或是DOM的内容,也能够输入SAX或DOM能够吸收的格局。这个才能可使Jdom很好的和已有的用SAX或DOM创建的体系之间整合。

  Jdom的准绳

  第一条而且是最主要的一条就是Jdom的api函数被计划成对java程序员来讲是复杂易懂的。其他的XML剖析函数被计划成言语通用的(撑持不异的api函数在java,c++,乃至是javascript中)。Jdom使用了java的优异的特性,如:办法重载、接纳机制,和背景处置等。

  为了可以复杂易用,这些函数不能不以程序员喜好的情势来刻画XML文档。比方:程序员想的到的一个元素的文本内容是甚么模样的呢?

<element>Thisismytextcontent</element>

  在一些api中,元素的文本内容仅被看成是一个元素的孩子节点。从手艺角度来讲,这个计划必要上面的代码才干会见到元素的内容:

Stringcontent=element.getFirstChild().getValue();

  Jdom用一种更复杂易用的办法来获得元素的内容:

Stringtext=element.getText();

  Jdom尽量的削减程序员的事情量。根据拇指划定规矩,Jdom应当用20%或是更少的勉力来完成80%或是更多的java/xml方面的成绩。这并非说Jdom只是撑持80%的XML标准(实践上我们但愿Jdom100%的撑持XML标准)。这个拇指划定规矩是说有些工具能够加出来,可是没有需要。这些api函数应当坚持简便。

  Jdom的第二条准绳是说Jdom应当是疾速的和轻量级的。调进和实行文档应当疾速,内存的损耗应当只管小。Jdom的计划分明是遵守这个准绳。比方,就算在入手下手的时分,不太和谐的操纵已比DOM快,可是比SAX显的粗拙。只管如许,Jdom仍是有很多SAX没有的长处。

  你必要Jdom吗?

  那末,你必要Jdom吗?这真是一个很好的成绩。已有了存在的尺度,为何还要往创造一个新的呢?谜底是Jdom办理了现有的尺度办理不了的成绩。

  DOM完整在内存中形貌一个元素树。它是一个年夜的api,被计划操纵几近一切大概的XML义务。它也必需有不异的api往撑持分歧的言语。由于这些限定,对那些习气利用java的特性,如办法重载、复杂的set,get办法的java程序员来讲,就很不习气。DOM还必要大批的内存和较高的主频,这使它很难和很多轻量级的web使用一同事情。

  SAX没有在内存中创建一个元素树,它用事变开展的体例来形貌。比方:它呈报每一个读到的入手下手标志和停止标志。这类处置体例使它成为一个轻量级的疾速读取的api。但是,这类事务处置体例对服务器真个java程序员来讲不敷直不雅。SAX也不撑持修正XML文档和随机读取。

  Jdom试图组合DOM和SAX的长处。它被计划成一个能够在小内存上疾速实行轻量级api。Jdom也撑持随机读取全部文档,可是使人惊异的是它其实不必要把全部文档读到内存中。这个api撑持将来确当必要时才读进信息的次轻量级操纵。另有,Jdom经由过程尺度的机关器和set办法撑持XML文档的修正。

  猎取XML文档

  Jdom用org.Jdom.Document类的一个实例来形貌一个XML文档。这个文档类是一个轻分量级的,它能够包含文档范例、多处置指令的对象、一个根元素和正文对象。你能够不必要机关器而从草稿机关一个文档。

Documentdoc=newDocument(newElement("rootElement"));

  本文前面我们会会商从草稿机关一个XML文档是何等的简单。可是如今,我们从一个已存在的文件、一个流、或是一个URL路径中机关我们的文档。

SAXBuilderbuilder=newSAXBuilder();
Documentdoc=builder.build(url);

  你能够用org.Jdom.input包中供应的机关类从任何数据源中机关文档。比来,有两种机关体例:SAXBuilder和DOMBuilder。SAXBuilder用sax剖析器从文件中机关文档。SAXBuilder侦听sax事务并从内存中创建一个响应的文档。这类体例十分快(基础上和sax一样快),这也是我们保举的体例。DOMBuilder是另外一种可选的体例,它从一个存在的org.w3c.dom.Document对象中创建Jdom文档。它同意Jdom轻松的和构建DOM树的工具完成接口。

  Jdom的速率有值得等候的进步的潜力经由过程一个延期的机关器的完成。这个机关器反省XML数据源,但当哀求的时分才对它剖析。比方:文档的属性当不会见时是不必要剖析的。

  机关器仍在开展,能够通sql查询、ldap查询和其他的数据格局来够造Jdom文档。以是,一旦进到内存中,文档就和制作它的工具没有干系了。

  SAXBuilder和DOMBuilder机关器同意用户指明他们是不是应当轮换,以便断定哪一个剖析器工夫实行剖析的义务。

publicSAXBuilder(StringparserClass,booleanvalidation);
publicDOMBuilder(StringadapterClass,booleanvalidation);

  默许的是用apache的开源Xerces剖析器而且是封闭轮换的。你应当注到DOMBuilder不象一个剖析类,倒更象一个适配类。这是由于不是一切的DOM剖析器都是不异的api。为了仍让用户选择喜好的剖析器,Jdom利用一个对一切的dom剖析器合用的大众的api的适配类。这个适配类撑持一切盛行的dom剖析器,包含Apache的Xerces,Crimson,IBM的XML4J,Sun的ProjectX,和Oracle的parsersV1andV2.每个剖析器经由过程准确的挪用其余剖析器的办法实行尺度的接口。这有点象jaxp,除它撑持jaxp所不撑持的新的剖析器。

  你必要Jdom吗?

  那末,你必要Jdom吗?这真是一个很好的成绩。已有了存在的尺度,为何还要往创造一个新的呢?谜底是Jdom办理了现有的尺度办理不了的成绩。

  DOM完整在内存中形貌一个元素树。它是一个年夜的api,被计划操纵几近一切大概的XML义务。它也必需有不异的api往撑持分歧的言语。由于这些限定,对那些习气利用java的特性,如办法重载、复杂的set,get办法的java程序员来讲,就很不习气。DOM还必要大批的内存和较高的主频,这使它很难和很多轻量级的web使用一同事情。

  SAX没有在内存中创建一个元素树,它用事变开展的体例来形貌。比方:它呈报每一个读到的入手下手标志和停止标志。这类处置体例使它成为一个轻量级的疾速读取的api。但是,这类事务处置体例对服务器真个java程序员来讲不敷直不雅。SAX也不撑持修正XML文档和随机读取。

  Jdom试图组合DOM和SAX的长处。它被计划成一个能够在小内存上疾速实行轻量级api。Jdom也撑持随机读取全部文档,可是使人惊异的是它其实不必要把全部文档读到内存中。这个api撑持将来确当必要时才读进信息的次轻量级操纵。另有,Jdom经由过程尺度的机关器和set办法撑持XML文档的修正。

  猎取XML文档

  Jdom用org.Jdom.Document类的一个实例来形貌一个XML文档。这个文档类是一个轻分量级的,它能够包含文档范例、多处置指令的对象、一个根元素和正文对象。你能够不必要机关器而从草稿机关一个文档。

Documentdoc=newDocument(newElement("rootElement"));

  本文前面我们会会商从草稿机关一个XML文档是何等的简单。可是如今,我们从一个已存在的文件、一个流、或是一个URL路径中机关我们的文档。

SAXBuilderbuilder=newSAXBuilder();
Documentdoc=builder.build(url);

  你能够用org.Jdom.input包中供应的机关类从任何数据源中机关文档。比来,有两种机关体例:SAXBuilder和DOMBuilder。SAXBuilder用sax剖析器从文件中机关文档。SAXBuilder侦听sax事务并从内存中创建一个响应的文档。这类体例十分快(基础上和sax一样快),这也是我们保举的体例。DOMBuilder是另外一种可选的体例,它从一个存在的org.w3c.dom.Document对象中创建Jdom文档。它同意Jdom轻松的和构建DOM树的工具完成接口。

  Jdom的速率有值得等候的进步的潜力经由过程一个延期的机关器的完成。这个机关器反省XML数据源,但当哀求的时分才对它剖析。比方:文档的属性当不会见时是不必要剖析的。

  机关器仍在开展,能够通sql查询、ldap查询和其他的数据格局来够造Jdom文档。以是,一旦进到内存中,文档就和制作它的工具没有干系了。

  SAXBuilder和DOMBuilder机关器同意用户指明他们是不是应当轮换,以便断定哪一个剖析器工夫实行剖析的义务。

publicSAXBuilder(StringparserClass,booleanvalidation);
publicDOMBuilder(StringadapterClass,booleanvalidation);

  默许的是用apache的开源Xerces剖析器而且是封闭轮换的。你应当注到DOMBuilder不象一个剖析类,倒更象一个适配类。这是由于不是一切的DOM剖析器都是不异的api。为了仍让用户选择喜好的剖析器,Jdom利用一个对一切的dom剖析器合用的大众的api的适配类。这个适配类撑持一切盛行的dom剖析器,包含Apache的Xerces,Crimson,IBM的XML4J,Sun的ProjectX,和Oracle的parsersV1andV2.每个剖析器经由过程准确的挪用其余剖析器的办法实行尺度的接口。这有点象jaxp,除它撑持jaxp所不撑持的新的剖析器。

  你必要Jdom吗?

  那末,你必要Jdom吗?这真是一个很好的成绩。已有了存在的尺度,为何还要往创造一个新的呢?谜底是Jdom办理了现有的尺度办理不了的成绩。

  DOM完整在内存中形貌一个元素树。它是一个年夜的api,被计划操纵几近一切大概的XML义务。它也必需有不异的api往撑持分歧的言语。由于这些限定,对那些习气利用java的特性,如办法重载、复杂的set,get办法的java程序员来讲,就很不习气。DOM还必要大批的内存和较高的主频,这使它很难和很多轻量级的web使用一同事情。

  SAX没有在内存中创建一个元素树,它用事变开展的体例来形貌。比方:它呈报每一个读到的入手下手标志和停止标志。这类处置体例使它成为一个轻量级的疾速读取的api。但是,这类事务处置体例对服务器真个java程序员来讲不敷直不雅。SAX也不撑持修正XML文档和随机读取。

  Jdom试图组合DOM和SAX的长处。它被计划成一个能够在小内存上疾速实行轻量级api。Jdom也撑持随机读取全部文档,可是使人惊异的是它其实不必要把全部文档读到内存中。这个api撑持将来确当必要时才读进信息的次轻量级操纵。另有,Jdom经由过程尺度的机关器和set办法撑持XML文档的修正。

  猎取XML文档

  Jdom用org.Jdom.Document类的一个实例来形貌一个XML文档。这个文档类是一个轻分量级的,它能够包含文档范例、多处置指令的对象、一个根元素和正文对象。你能够不必要机关器而从草稿机关一个文档。

Documentdoc=newDocument(newElement("rootElement"));

  本文前面我们会会商从草稿机关一个XML文档是何等的简单。可是如今,我们从一个已存在的文件、一个流、或是一个URL路径中机关我们的文档。

SAXBuilderbuilder=newSAXBuilder();
Documentdoc=builder.build(url);

  你能够用org.Jdom.input包中供应的机关类从任何数据源中机关文档。比来,有两种机关体例:SAXBuilder和DOMBuilder。SAXBuilder用sax剖析器从文件中机关文档。SAXBuilder侦听sax事务并从内存中创建一个响应的文档。这类体例十分快(基础上和sax一样快),这也是我们保举的体例。DOMBuilder是另外一种可选的体例,它从一个存在的org.w3c.dom.Document对象中创建Jdom文档。它同意Jdom轻松的和构建DOM树的工具完成接口。

  Jdom的速率有值得等候的进步的潜力经由过程一个延期的机关器的完成。这个机关器反省XML数据源,但当哀求的时分才对它剖析。比方:文档的属性当不会见时是不必要剖析的。

  机关器仍在开展,能够通sql查询、ldap查询和其他的数据格局来够造Jdom文档。以是,一旦进到内存中,文档就和制作它的工具没有干系了。

  SAXBuilder和DOMBuilder机关器同意用户指明他们是不是应当轮换,以便断定哪一个剖析器工夫实行剖析的义务。

publicSAXBuilder(StringparserClass,booleanvalidation);
publicDOMBuilder(StringadapterClass,booleanvalidation);

  默许的是用apache的开源Xerces剖析器而且是封闭轮换的。你应当注到DOMBuilder不象一个剖析类,倒更象一个适配类。这是由于不是一切的DOM剖析器都是不异的api。为了仍让用户选择喜好的剖析器,Jdom利用一个对一切的dom剖析器合用的大众的api的适配类。这个适配类撑持一切盛行的dom剖析器,包含Apache的Xerces,Crimson,IBM的XML4J,Sun的ProjectX,和Oracle的parsersV1andV2.每个剖析器经由过程准确的挪用其余剖析器的办法实行尺度的接口。这有点象jaxp,除它撑持jaxp所不撑持的新的剖析器。


你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。
莫相离 该用户已被删除
沙发
 楼主| 发表于 2015-3-23 10:16:32 | 显示全部楼层
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-24 07:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表