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
ましたが、すべてが私が望むものを与えることができませんでした. 私が欲しいものはとても基本的なように思えますが、解決策はとても明白でなければならないと確信していますが、私はそれを得ることができません.
よろしくお願いいたします。