Pentaho PDI调用SOAP接口仅返回首行数据问题求助
Pentaho PDI 9.3 Web Service Lookup仅返回单行数据的解决方法
问题核心:接口返回多行XML数据,但PDI仅解析第一行,原因是行循环XPath配置错误,未正确指向重复的<WebserviceAansluiting>节点,且未正确处理XML命名空间。
具体修复步骤
1. 声明XML命名空间
在Web Service Lookup步骤的「XML」标签页,点击命名空间按钮,添加两个命名空间:
- 前缀:
soap,URI:http://schemas.xmlsoap.org/soap/envelope/ - 前缀:
ns,URI:https://webservice.xxxxxxxxxxxx(与接口返回的getAansluitingenResponse节点的xmlns完全一致)
2. 修正行循环XPath
将「行循环XPath」设置为:
/soap:Envelope/soap:Body/ns:getAansluitingenResponse/ns:getAansluitingenResult/ns:aansluitingen/ns:WebserviceAansluiting
此XPath会匹配所有<WebserviceAansluiting>节点,确保PDI循环解析每一条数据。
3. 调整字段XPath为相对路径
每个字段的XPath要基于行循环节点设置为相对路径,例如:
meternummer字段的XPath:ns:meternummertelwerk字段的XPath:ns:telwerk
以此类推,避免使用绝对路径(绝对路径会始终指向第一个节点)。
4. 验证配置
保存转换后运行,检查输出数据是否包含4行记录。若仍有问题,确认命名空间URI完全匹配(注意大小写、特殊字符),且行循环XPath未添加索引(如[1])。
补充说明
PDI自动生成的XPath可能仅指向第一个<WebserviceAansluiting>节点(默认加[1]索引),或未正确处理命名空间导致节点匹配失败,手动调整后即可解析全部数据。
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

