Я довольно давно использую парсер STAX в Pentaho Kettle. Но вдруг у меня возникла странная ситуация. Раньше файлы XML имели предопределенные уровни, такие как:
<A>
<TRADE a="1" b="2">
<TRADE a="3" b="4">
</TRADE>
</TRADE>
</A>
OR
<A>
<TRADE a="100" b="200">
<TRADE a="1" b="2">
<TRADE a="3" b="4">
<TRADE a="5" b="6">
</TRADE>
</TRADE>
</TRADE>
</TRADE>
</A>
Если файл состоит из двух уровней торговли, то он был известен заранее, и то же самое для трех или четырех уровней (четыре — самые высокие). Соответственно Xpath был упомянут в синтаксическом анализаторе STAX (A/TRADE/TRADE/TRADE для третьего уровня и т. д.).
Ожидаемый результат:
В первом случае - две записи (строки) в таблице сделок: одна для родительской сделки, другая для дочерней. Во втором случае - четыре записи (строки) в торговой таблице - установление отношения родитель-потомок.
Как сделать это динамически, не зная количества сделок (глубины)
Но теперь файл может иметь любой уровень ТОРГОВЛИ (мин 1 макс 15). Я сбит с толку тем, как динамически анализировать файл TRADE с помощью синтаксического анализатора STAX в чайнике Pentaho.
Любое руководство будет чрезвычайно полезным.
С уважением, Викас
xml_element_id,xml_parent_element_id,a,b
для всех сделок? - person bolav   schedule 01.03.2016