Kettle通过Http post请求webservice接口以及结果解析处理 (2)

首先是将Http post请求响应的字符串结果创建一个出XML对象,然后获取soap的命名空间及响应结果的命名空间,根据这些信息拿到响应结果的body部分,最后转成格式化的字符串输出。

最终responseXML为:

<ns2:getDataResponse xmlns:ns2="http://webservice.ks.com"> <ns2:return> <result> <staff> <identityNo>身份证号码0</identityNo> <employeNo>工牌号0</employeNo> <spellCode>拼音码0</spellCode> <deptName>所属部门名称0</deptName> <sexCode>性别代码0</sexCode> <staffNo>员工内部号0</staffNo> <sexName>性别名称0</sexName> <staffName>员工姓名0</staffName> <account>账户0</account> <staffBirthdate>出生日期0</staffBirthdate> <deptCode>所属部门代码0</deptCode> </staff> <!-- 以下忽略部分staff--> </result> <code>100</code> <success>true</success> <message>查询成功</message> </ns2:return> </ns2:getDataResponse>

再用【XML文件输入】来解析responseXML就成功了

Kettle通过Http post请求webservice接口以及结果解析处理

后来,我惊讶的发现,获取body这个步骤这么复杂,目的不就是只取getDataResponse吗,那我是不是可以通过replace()函数把前后部分去掉呢?

于是我的获取body步骤变成了:

Kettle通过Http post请求webservice接口以及结果解析处理

然后打印输出到excel也是可以的:

Kettle通过Http post请求webservice接口以及结果解析处理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwypp.html