Pentaho pdi如何从许多tgz获取xml

时间:2018-04-24 08:53:59

标签: xml pentaho unzip pdi

我想从许多.tgz获取XML文件。

我已经尝试过这个tp读取一个tgz文件:

folder/file               |   regex 
tgz:C:\tmp\file_01.tgz!   |   .*\.xml

但在我的情况下,我不知道可以有多少.tgz文件。 我尝试这样的东西,但它不起作用:

tgz:C:\tmp\file_*.tgz!

1 个答案:

答案 0 :(得分:0)

创建作业(不是转换),并使用带有正则表达式的Unzip file解压缩临时目录中的所有文件。在Advanced tab点击Add extracted file to result上,在内部保存解压缩文件的列表。

然后让作业执行第一步为Get row from results的转换,以获取字段中的文件名列表,并将流提供给Get data from XML。在该步骤中,指定您希望从上一步获取文件名。

然后返回工作并放置Delete file name from result。确保箭头为绿色,因此只有在成功读取后才会删除提取的XML。

就像那样,你的tmp目录将包含那里没有读取的文件。从长远来看很容易维护。特别是如果在Unzip file上,则选中自动将日期附加到提取的xml上的选项。