最近一个项目需要使用Kettle读取另外一个系统生成的XML文件,发现网上这方面的信息很少,自己做了一些尝试,收获不算很大,但足以应付项目所需,下面把我摸索出来的一点东西分享给大家。
所谓难者不会,会者不难,对于经常做这方面工作的朋友来说一个简单的截图和XML示例文件结构就足够了,废话少说,上图。
该示例实现的功能是读取指定文件夹下的所有XML文件的内容,生成输出流,后面存为Excel或数据库就你说了算了。如上图,匹配指定文件夹下的XML文件,点击“Show filename”按钮即可预览到该文件夹下的xml文件清单;
在Content卡片中,要选对Loop XPath,顾名思义“循环路径”,也就是说XML文件中存在多少个这个路径,输出流就会生成多少条记录,这个路径某个实例与其下级路径即使有1:n的关系,也照样只生成一条记录,所以说这个是至关重要的属性,决定了你要读取的记录数。
上图是我用的示例XML文件,尽可能包含了能读取数据的各种情况。
下图是我定义读取上述XML文件的列(Fields):
下图是点击“Preview rows”后显示出的预览数据:
本文完。希望本文能为您使用Kettle提供一点帮助,如有任何建议或者问题,欢迎留言或者邮件讨论。