在java中,commons-Digester如何处理输入XML文件?

时间:2009-06-17 13:55:42

标签: java xml apache-commons-digester

我是Java新手,我在Java项目中发现了一个声明:

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

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

我用谷歌搜索了消化器,但找不到任何有用的东西可以帮助我完成上述说法。任何人都可以告诉我执行上述声明的步骤是什么?实际上这个XML东西的优点是什么?

4 个答案:

答案 0 :(得分:2)

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

好主意,一旦你习惯它就很好,但是如果你输入xml文件有一个xsd,我建议你早点使用JAXB。

关于Digester的一件好事就是它只会对你感兴趣的元素做一些事情,所以内存占用最终会很好而且很低。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

至于Digester,我没有使用它,但快速阅读(http://commons.apache.org/digester/)应该解释所有。

答案 3 :(得分:0)

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