Pentaho Kettle 中的动态 XML 解析

Dynamic XML parsing in Pentaho Kettle

我在 pentaho Kettle 中使用 STAX 解析器已经很长时间了。但是突然间我遇到了一个很奇怪的情况。早些时候 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>

如果文件由两层交易组成,那么它是预先知道的,三层或四层(四层是最高的)也是如此。 因此,STAX 解析器中提到了 Xpath(A/TRADE/TRADE/TRADE 用于第三级等等)。

预期输出:

第一种情况 - 交易中的两个条目(行)Table 一个用于父交易,另一个用于子交易。 在第二种情况下 - 贸易中的四个条目(行)Table - 建立父子关系。

如何在不知道交易数量(深度)的情况下动态执行此操作

但现在文件可以有任何级别的 TRADE(最小 1 最大 15)。我对如何在 pentaho kettle 中使用 STAX 解析器动态解析 TRADE 文件感到困惑。

任何指导都将非常有帮助。

此致, 维卡斯

有了这个转换:

Filter rows:

Row denormaliser:

给出以下输出: