我正在尝试使用 Apache commons-digester3 解析一个大的 XML 文件。我有兴趣只提取某些数据。XML 相当复杂,我不希望构建整个结构,而是匹配我感兴趣的模式。
假设我有以下 XML:
<?xml version="1.0"?>
<foo>
<level1>
<level2>
<bar>the bar</bar>
</level2>
</level1>
</foo>
我有以下要解析的域对象:
package my.pkg;
public class Foo {
private String bar;
// Note the name of the setter is not "setBar" but rather "setTheBar"
public void setTheBar(String bar) {
this.bar = bar;
}
}
现在我有了 XML 规则,但在正确处理它们时遇到了问题:
<digester-rules>
<pattern value="foo">
<object-create-rule classname="my.pkg.Foo"/>
<pattern value="level1/level2/bar">
<!--What do I need to pout on here the get "the bar" value injected into my Foo instance-->
</pattern>
</pattern>
</digester-rules>
我尝试了 , 等的各种组合set-method-rule
,bean-property-setter-rule
但都没有给我想要的东西。我想要的似乎很基本,我确信解决方案一定很明显,但我无法得到它。
预先感谢您的帮助。