我在一个路径中有大约20k个xml文件。我想在一个项目上只访问一个文件,比如XML stax步骤的队列,而不是XML输入步骤。有没有任何选项可以一次获取一个文件,处理它,然后转到下一个文件。示例:类似于用于每个循环的。
您应该使用带有两个子转换的作业。
第一个转换有一个"获取文件名"步骤,然后是"将行复制到结果"。
父作业将第二次转换设置为对每个输入行运行,并将文件名步骤从ktr 1映射到ktr 2的文件名参数。
第二个转换有一个参数filename,用于定义使用StaX解析器读取哪个文件。
您可以使用XML source is define in a field
选项Get the files names
并将结果提供给Get data form XML
。
一个变换有两个步骤,并自动并行。但是,如果您的解决方案需要可扩展(而不仅仅是阅读一个项目并将其写在某个地方(,我建议您使用nsouza的解决方案。如果发生错误,你将有机会知道哪个文件是有罪的。