0

Apache Digester(V3)を使用して、「thread-dumps」を含むXMLファイルを処理しようとしています。ファイルには多くのスレッドダンプが含まれ、1つのスレッドダンプには多くのスレッドが含まれ、1つのスレッドにはスタックトレースが含まれます。多くの行

このように:(簡略化)

<threaddumps>
<threaddump name="xxx">
<thread name="thread-1">
<stacktrace>
<line>
java.lang.wait
</line>
<line>
...
</line>
</stacktrace>
</thread>
<thread name="thread-2">
...
</threaddump>
<threaddump name="yyy">
...
</threaddumps>

この入力ファイルを処理するためにXMLベースのルールを使用しています。以下のフラグメント:

<pattern value="thread">
                <object-create-rule classname="mypackagemodel.Thread"/>
                <set-next-rule methodname="addThread" paramtype="mypackagemodel.Thread"/>
                <set-properties-rule>
                    <alias attr-name="name" prop-name="name" />
                </set-properties-rule>
                <pattern value="stacktrace/line">
                        <object-create-rule classname="mypackagemodel.StackLine"/>
                        <set-next-rule methodname="addStackLine" paramtype="mypackagemodel.StackLine"/>
                        <!-- need something here -->
                </pattern>  
</pattern>

'line'タグの間からそのテキストを引き出すにはどうすればよいですか?私はすでに'stacktrace/ line'で一致していますが、使用するサブ要素はありません-では、どのパターンを使用できますか?

別の言い方をすれば、「StackLine」オブジェクトが作成され、正しく関連付けられています。これは、「setName()」セッターを何と呼ぶか​​わからないということです。

(XSLTでは、通常、同様のシナリオで「。」または「current()」を使用します)

4

1 に答える 1

0

了解しました:空のパターン文字列が現在のノードのテキストと一致するようです:

これは私のために働いた:

<bean-property-setter-rule pattern="" propertyname="line"/>
于 2011-10-16T14:21:58.923 に答える