0
我正在嘗試使用Apache Digester(V3)來處理包含'線程轉儲'的XML文件:因此該文件包含許多線程轉儲,一個線程轉儲包含多個線程以及一個線程包含一個堆棧跟蹤,其中包括許多行Apache Digester模式:需要類似於XSLT的'。'或'current()'
像這樣:(簡體)
<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>
我該如何從'行'標籤之間拉出文本?我已經在'stacktrace/line'上匹配了,沒有使用子元素 - 那麼我可以使用什麼樣的模式?
放置它的另一種方式 - 'StackLine'對象正在創建並正確關聯 - 它只是我不知道該怎麼調用我的'setName()'setter?
(在XSLT一個一般會使用或目前的()「中,例如類似的情況「」)