偷看下一排

时间:2013-10-01 08:11:27

标签: java pentaho

我希望借助PDI从我的xml中删除一些标签。我每件产品每种类型只需要1个mime。我以为我可以为它编写一个用户定义的Java类,但是当我在第一个节点时,我需要查看下一行。我的xml看起来像这样:

<MIME_INFO>
                <MIME>
                    <MIME_TYPE>image/tiff</MIME_TYPE>
                    <MIME_SOURCE>P_I202_XX_06499E600600.TIF</MIME_SOURCE>
                    <MIME_PURPOSE>detail</MIME_PURPOSE>
                </MIME>
                <MIME>
                    <MIME_TYPE>image/jpeg</MIME_TYPE>
                    <MIME_SOURCE>P_I202_XX_06499I300300.JPG</MIME_SOURCE>
                    <MIME_PURPOSE>normal</MIME_PURPOSE>
                </MIME>
                <MIME>
                    <MIME_TYPE>image/jpeg</MIME_TYPE>
                    <MIME_SOURCE>P_I202_XX_00482I300300.JPG</MIME_SOURCE>
                    <MIME_PURPOSE>normal</MIME_PURPOSE>
                </MIME>
            </MIME_INFO> 

我使用主UDJC函数逐行处理行,但是当我在行时,我必须知道mime的类型,知道我是否必须跳过它。我怎么看下一行?像getNextRow()或getRow(1)这样的东西。

2 个答案:

答案 0 :(得分:0)

你需要使用像DOM解析器这样的东西来解析你的XML文件。 您使用的方法可能运行良好,但这不是一个好方法。 你可以参考下面的链接来阅读xml文件,然后你可以相应地执行你的操作:

http://www.mkyong.com/java/how-to-read-xml-file-in-java-dom-parser/

答案 1 :(得分:0)

我找到了解决方案......只需再次调用getRow,而是将第一行存储在临时变量中。然后在找到第二行中的内容之后,我可以决定是否要处理第一行(如果我的行包含MIME节点,我一步处理了2行)。