使用Pentaho Kettle为每个MS Excel行生成一个单独的XML文件

使用Pentaho Kettle为每个MS Excel行生成一个单独的XML文件,pentaho,etl,kettle,Pentaho,Etl,Kettle,我有一个Excel文件,其中包含项目列表:A-ID列、B-Name列 例如,2行: Line 1: A - 12000; B - "Name of the first item" Line 2: A - 12001; B - "Name of the second item" 我需要遍历所有行并为每个行创建一个名为ID.xml的文件。 对于上面的示例,我希望输出文件夹中有2个文件: 12000.xml <?xml version="1.0" encoding="utf-8"?> &

我有一个Excel文件,其中包含项目列表:A-ID列、B-Name列

例如,2行:

Line 1: A - 12000; B - "Name of the first item"
Line 2: A - 12001; B - "Name of the second item"
我需要遍历所有行并为每个行创建一个名为ID.xml的文件。 对于上面的示例,我希望输出文件夹中有2个文件:

12000.xml

<?xml version="1.0" encoding="utf-8"?>
<item>
  <property key="ID" value="12000"/>
  <property key="name" value="Name of the first item"/>
</item>
12001.xml

<?xml version="1.0" encoding="utf-8"?>
<item>
  <property key="ID" value="12001"/>
  <property key="name" value="Name of the second item"/>
</item>
如何使用Pentaho Kettle ETL工具实现它


感谢您的帮助

如果XML结构像您在这里所说的那样简单,最简单的方法就是在Javascript步骤中构建XML,同时生成文件名,然后使用文本文件输出步骤,选中“从上一步接受文件名”框

这将在单独的文件中输出每一行数据

如果您的结构比这更复杂,那么您可能需要使用几个添加XML步骤以及一些XML连接


PDI的samples文件夹中有一个XML连接示例。

清除我的真实XML结构更复杂。以上只是简化了我的问题。看起来我的问题是在一个作业中组合的不同转换之间传输ID值,我想将其用作文件名。现在我摆脱了Job&将所有节点放在一个转换中。按照@nsousa的建议,我现在使用文本文件输出节点进行测试。它起作用了!我已经设法在每行生成单独的文件。备注:为此,我启用了复选框:从字段接受文件名?&在下面的选择框:文件名字段中选择了正确的字段。