【问题标题】:IN java, how a commons-Digester process an input XML file?在 java 中,commons-Digester 如何处理输入的 XML 文件?
【发布时间】:2009-06-17 13:55:41
【问题描述】:

我是 Java 新手,我在一个 Java 项目中看到一个声明:

Digester digester = DigesterLoader.createDigester(getClass()
                .getClassLoader().getResource("rules.xml"));

rules.xml 文件包含各种模式,每个模式都有不同的属性,如类名、方法名和其他一些属性。

我用谷歌搜索了消化器,但找不到任何有用的东西可以帮助我完成上述陈述。谁能告诉我执行上述语句的步骤是什么?其实这个 XML 的东西有什么好处呢?

【问题讨论】:

    标签: java xml apache-commons-digester


    【解决方案1】:

    swapnil,作为我在 Struts 时代的 Digester 用户,老实说,学习/调试很棘手。这是一个很难熟悉的库,本质上您正在为某些元素设置事件处理程序,有点像 SAX 解析器(实际上它在幕后使用 SAX)。因此,您为规则引擎提供一些您感兴趣的节点的 XPath,并设置将实例化的规则,并使用它在 XML 文件中找到的数据设置一些 POJO 的属性。

    好主意,一旦你习惯了它就很好,但是如果你有一个用于输入 xml 文件的 xsd,我会尽快推荐你使用 JAXB。

    Digester 的优点之一是它只会处理您感兴趣的元素,因此内存占用量最终会变得很好而且很低。

    【讨论】:

      【解决方案2】:

      这是被称为here 的方法。 xml 在 Java 中通常用于配置,因为 xml 文件不需要编译。在 java 文件中具有相同的配置意味着您必须编译该文件。

      【讨论】:

        【解决方案3】:

        我假设您了解如何使用类加载器加载规则文件?它基本上与类本身在同一个包中查找,并创建一个提供文件绝对位置的URL

        至于 Digester,我没有使用过,但快速阅读一下 (http://commons.apache.org/digester/) 应该可以解释一切。

        【讨论】:

          【解决方案4】:

          他们在我的最后一次演出中使用了它,我只记得它非常慢。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2021-05-31
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-12
            相关资源
            最近更新 更多