Я пытаюсь использовать Apache Digester (V3) для обработки XML-файла, который содержит 'thread-dumps': поэтому файл содержит много потоков-дампов, один поток-дамп содержит много потоков, а один поток содержит трассировку стека, который состоит из множества строк
Как это: (упрощенно)
<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 () с?
(Например, в XSLT обычно используется «.» Или «current ()» в аналогичном сценарии)