`
smhx
  • 浏览: 76388 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

Jakarta-Common-Digester解析复杂xml

阅读更多
		digester.addObjectCreate("报表信息", Report.class);
		digester.addObjectCreate("报表信息/查询条件", QueryCondition.class);
		digester.addObjectCreate("报表信息/查询语句", QueryParagraph.class);
		digester.addObjectCreate("报表信息/查询语句/普通查询", NormalQuery.class);
		digester.addObjectCreate("报表信息/查询语句/普通查询/SQL", Sql.class);

		digester.addSetNext("报表信息/查询条件", "setQueryCondition");
		digester.addSetNext("报表信息/查询语句", "setQueryParagraph");
		digester.addSetNext("报表信息/查询语句/普通查询", "addNoramlQueryList");
		digester.addSetNext("报表信息/查询语句/普通查询/SQL", "setSql");

		digester.addCallMethod("报表信息/查询语句/普通查询/SQL", "setValue", 0);

		digester.addSetProperties("报表信息/查询条件", "报表源", "reportSource");
		digester.addSetProperties("报表信息/查询语句/普通查询/SQL", "T表名", "tName");

要点

 

 1、按照模式定义对象。例如:        digester.addObjectCreate("报表信息/查询语句/普通查询", NormalQuery.class);
        2、如果下级包含的是单个对象就用        digester.addSetNext("报表信息/查询语句", "setQueryParagraph");
            如果下级是多个则定制添加列表方法         digester.addSetNext("报表信息/查询语句/普通查询", "addNoramlQueryList");
        3、设置对象的属性使用        digester.addSetProperties("报表信息/查询语句/普通查询/SQL", "T表名", "tName");
            如果对象的下级是文本内容则调用         digester.addCallMethod("报表信息/查询语句/普通查询/SQL", "setValue", 0);


           多级的xml解析有点复杂,开始的时候怎么写都不对,原来是复制代码的时候模式写错了,快要放弃的时候时候终于发现了问题,
           所以很多时候如果遇到不合逻辑的错误的时候,那问题的原因可能是很简单的失误。

           好久没有写代码,今天花半天时间和半夜的一点时间解决了问题还是觉得很开心的。

分享到:
评论

相关推荐

    Jakarta-Common-Digester使用笔记

    我们无须了解SAX和DOM的解析过程,只要给Digester添加一些解析规则,就能对一个xml文件进行解析。Digester使用堆栈来保存xml节点(stack.push()方法),当该xml节点中嵌套的所有子节点解析完毕,该节点将被弹出...

    jakarta-struts-1.1.zip_jakarta-Struts-1_jakarta-struts 1_jakarta

    在"jakarta-struts-1.1.zip"这个压缩包中,包含了Jakarta Struts 1.1版本的核心组件和相关资源。 `struts-documentation.war`文件是一个预打包的Web应用,通常用于部署到Servlet容器,如Tomcat或Jetty。这个WAR文件...

    apache-jakarta旗下的所有开源项目jar文件

    apache-jakarta-commons-codec.jar apache-jakarta-commons-collections.jar apache-jakarta-commons-discovery.jar apache-jakarta-commons-email.jar apache-jakarta-commons-fileupload.jar apache-jakarta-...

    jakarta-oro-2.0.8.rar_Perl5Util jar_jakarta-oro-2.0.8_oro

    而`jakarta-oro-2.0.8`目录可能包含了完整的源代码、API文档和其他相关资源,如构建脚本和测试用例,这些都是深入学习和调试的重要资料。 总的来说,Jakarta ORO 2.0.8提供了与Perl 5兼容的正则表达式引擎,对于...

    jakarta-taglibs-standard-1.1.2.zip

    要使用jakarta-taglibs-standard-1.1.2.zip,首先需要将其解压缩,然后将jar文件添加到项目的类路径中。接着,在JSP页面上通过`<%@ taglib %> `指令导入所需的JSTL库。例如,导入Core库的指令为: ```jsp ``` ...

    jakarta-taglibs-standard-1.1.2.rar

    《Jakarta Taglibs Standard 1.1.2:Java Web开发中的标签库解析》 Jakarta Taglibs Standard 1.1.2是Java Web开发中的一款重要组件,它为开发者提供了一套标准的标签库,使得在JSP(JavaServer Pages)页面中编写...

    jakarta-taglibs-standard-1.1.2.rar_jakarta-taglibs_standard1.1_s

    "jakarta-taglibs-standard-1.1.2.rar"是一个包含Jakarta Taglibs标准版1.1.2版本的压缩包文件,这个版本在当时是广泛使用的。下面我们将深入探讨Jakarta Taglibs、标准标签库以及它们与Struts框架的关系。 Jakarta...

    jakarta-httpcore-4.0-alpha2.jar

    jakarta-httpcore-4.0-alpha2.jar用于移动开发的包

    commons-net-1.4.1 和 jakarta-oro-2.0.8 .rar

    压缩包中的"jakarta-oro-2.0.8.jar"是Jakarta ORO库的JAR文件,可以直接引入Java项目中使用。而"commons-net-1.4.1.zip"则是Apache Commons Net库的源代码压缩包,通常用于开发人员查看源代码、调试或自定义库的功能...

    apache的FTP包commons-net-1.4.1.jar,jakarta-oro-2.0.8.jar

    `jakarta-oro-2.0.8.jar`则是Jakarta ORO(Oracle Regular Expressions for Java)库,它提供了Perl 5风格的正则表达式支持。虽然在FTP操作中不是必需的,但它在处理字符串时非常有用,比如在解析FTP服务器返回的...

    jakarta-oro-2.0.8.jar

    使用commons的net包进行ftp链接,commons-net包封装了一些常见的网络包:ftp,smtp,pop3等 相关包:commons-net-1.4.1.jar ; commons-io-1.4.jar;jakarta-oro-2.0.8.jar

    jakarta-commons 相关依赖包

    jakarta-commons 相关依赖包,文件列表: commons-attributes-api.jar commons-attributes-compiler.jar commons-beanutils.jar commons-codec.jar commons-collections.jar commons-dbcp.jar commons-digester.jar ...

    ant-jakarta-regexp-1.6.1.jar.zip

    **ant-jakarta-regexp-1.6.1.jar** 这个JAR文件包含了jakarta-regexp库的所有类和资源,当开发者在Ant构建脚本中使用`<patternset>`或`<filter>`任务时,就需要这个库作为依赖。这个版本的库(1.6.1)修复了一些早期...

    FTP上传下载所需jakarta-oro-2.0.8.jar.rar

    "FTP上传下载所需jakarta-oro-2.0.8.jar"这个标题表明,jakarta-oro-2.0.8.jar文件是用于FTP上传或下载过程中的一种依赖。可能的情况是,某个FTP客户端工具或服务器端脚本需要这个库来执行特定的文本处理操作,例如...

    apache-jakarta-oro-2.0.8.jar

    jar包,亲测可用

    jakarta-tomcat-connectors-1.2.15-src.tar.gz

    在本文中,我们将深入探讨jakarta-tomcat-connectors-1.2.15-src.tar.gz这个源码包,揭示其中包含的源代码、设计理念以及如何利用这些源码来理解Tomcat的工作原理。 首先,让我们了解一下Jakarta Tomcat Connectors...

    jakarta-jmeter-2.3.1 第一部分

    jakarta-jmeter-2.3.1.001 jakarta-jmeter-2.3.1.002 jakarta-jmeter-2.3.1.BAT <br>由于文件较大,分割成三个文件,下载后,点击bat文件即可!

    jakarta-taglibs-standard-current (JSP 标准标签库(JSTL) )

    在给定的压缩包`jakarta-taglibs-standard-1.1.2`中,我们主要关注的是JSTL 1.1.2版本。 **JSTL的核心组件包括:** 1. **Core标签库(c:tags)**:这是最基础的库,包含一系列用于控制流程(如if、choose、when、...

    jakarta-tomcat-5.0.30.rar

    【标题】"jakarta-tomcat-5.0.30.rar" 提供的是Apache Tomcat 5.0.30版本的服务器软件,这是一个基于Java的开源Web应用服务器,主要用于运行Servlet和JSP(JavaServer Pages)应用程序。Tomcat是Apache软件基金会...

Global site tag (gtag.js) - Google Analytics