当前位置: 首页 > news >正文

kettle从入门到精通 第117课 ETL之kettle,kettle调用his接口,入参和响应数据均为xml结构

场景:有小伙伴私聊我咨询,使用kettle调用his相关接口时,入参和响应数据均为xml结构报文,无法掉通接口。今天咱们一起来梳理下如何解决这种问题。

1、添加jar文件

1)将staxon-1.3.jar、hutool-all-5.6.0.jar、xiaojingang-https-0.0.1-SNAPSHOT.jar三个jar文件放到kettle的lib目录下。

2)重启spoon。

4a21f29f-d019-4a23-933a-6adb7cd6177a

 

2、设计转换

1)生成记录,分别设置reqJson和respXml两个字段数据。

2)JavaScript代码,调用jar中的方法进行转换。

3)写日志,打印转换结果。

6562f662-6b4d-4cbf-82a2-1d1cab6033f0

 3、生成记录

6e13ff56-9a4b-4629-b0e6-9d17b6ed4ea7

 reqJson值为json

{"Request": {"MessageHeader": {"Sender": "PIS","Receiver": "OAI","SendTime": "20240816011001","EventType": "MDM_USERS","Msgld": "TEST20241107000001"},"MessageBody": {"WorkDept": "1001231"}}
}

 respXml

<Response><MessageHeader><Sender>OAI</Sender><Receiver>PIS</Receiver><SendTime>20240816011001</SendTime><EventType>ACK_MDM_USERS</EventType><Msgld>TEST20241107000001</Msgld></MessageHeader><MessageBody><UserList><User><UserId>986306638453809870</UserId><WorkNo>0153</WorkNo><FullName>哈利</FullName><Category>1</Category><CategoryDesc>医院职工</CategoryDesc><WorkDept>1001231</WorkDept><WorkDeptName>病理科</WorkDeptName><JobStatus>1</JobStatus><JobStatusName>在职</JobStatusName><WorkPost>1</WorkPost><WorkPostName>医师</WorkPostName><WorkProfessional>306</WorkProfessional><WorkProfessionalName>副主任医师</WorkProfessionalName><Duty>0</Duty><DutyName>无</DutyName><MplFlag>Y</MplFlag><Mobile>136xxxx1868</Mobile><IdCard>420682xxxxxxxx0024</IdCard><OfficePhone/><Email/><PinyinCode>HH</PinyinCode><WubiCode>AN</WubiCode><ActiveStatus>1</ActiveStatus><ActiveStatusDesc>启用</ActiveStatusDesc><LockStatus>1</LockStatus><LockStatusDesc>正常</LockStatusDesc><HospitalCode>H0000</HospitalCode><NpCode>D420682002681</NpCode></User><User><UserId>271770908087827448</UserId><WorkNo>0467</WorkNo><FullName>波特</FullName><Category>1</Category><CategoryDesc>医院职工</CategoryDesc><WorkDept>1001231</WorkDept><WorkDeptName>病理科</WorkDeptName><JobStatus>1</JobStatus><JobStatusName>在职</JobStatusName><WorkPost>4</WorkPost><WorkPostName>医技</WorkPostName><WorkProfessional/><WorkProfessionalName/><Duty>0</Duty><DutyName>无</DutyName><MplFlag>Y</MplFlag><Mobile>138xxxx8821</Mobile><IdCard>420620xxxxxxxx0017</IdCard><OfficePhone/><Email/><PinyinCode>ZKF</PinyinCode><WubiCode>UDN</WubiCode><ActiveStatus>1</ActiveStatus><ActiveStatusDesc>启用</ActiveStatusDesc><LockStatus>1</LockStatus><LockStatusDesc>正常</LockStatusDesc><HospitalCode>H0000</HospitalCode><NpCode>HJ420682001896</NpCode></User></UserList><Result><Code>CA</Code><Desc>成功</Desc></Result></MessageBody>
</Response>

3、JavaScript代码转换

在javascript代码中调用jar文件中的方法进行转换。

a17f139a-01d9-49c4-b8e3-a0f2eb7ae48a

 

//Script herevar staxonUtils=new Packages.com.xiaojingang.xiaojingang_https.StaxonUtils();//将json转换为xml
//var xmlStr = staxonUtils.json2xml(reqJson);
var xmlStr = staxonUtils.json2PrettyXml(reqJson);xmlStr=xmlStr.replace("<?xml version='1.0'?>",'');
//将xml转换为json
var jsonStr =staxonUtils.xml2json(respXml);

4、运行

58db62f6-68cd-4537-98bb-936848debbcd

 5、完善

解决了xml和json互转难题之后,在加上rest client接口请求步骤即可解决开头说到的问题。

fae735b2-71a6-41b3-91b2-8493aa831b6f

 

  

 

http://www.jsqmd.com/news/375482/

相关文章:

  • 职工生育保险待遇
  • HTTPS/SVCB记录和HTTP3/QUIC排障
  • day 9 - 呓语
  • 《人月神话》读后感
  • TDengine IDMP让制糖看得清、管得住、跑得稳 - 详解
  • 一个能一直记住你、了解你、陪你一起成长的 AI 工具 PAI
  • 洛谷题目提供**使用面向对象继承概念**的Java解答
  • P10250 [GESP样题 六级] 下楼梯
  • 图像金字塔介绍(多尺度分析)高斯金字塔(Gaussian Pyramid)、拉普拉斯金字塔(Laplacian Pyramid)
  • 黑马大模型RAG与Agent智能体实战教程LangChain提示词——18、RAG开发——Chain的基础使用(|管道链、RunnableSerializable对象、上一个组件输出为下一个组件输入)
  • 执业药师培训实测排名前三 零基础/在职党避坑必看,附高通过率秘籍 - 品牌测评鉴赏家
  • bk1 - -Klsw
  • 水表流量时序数据建模全流程(含代码与核心解析)
  • 国产时序数据库实战,金仓如何破解电力行业数据困局 - 详解
  • AeBAD航空发动机叶片异常识别分割数据集labelme格式1149张4类别
  • 基于主成分分析和RBF神经网络(PCA+RBF)预测附Matlab代码
  • 2026执业药师培训机构怎么选!选对少走一年弯路|内附避坑指南 - 品牌测评鉴赏家
  • AeBAD航空发动机叶片异常检测数据集VOC+YOLO格式1149张4类别
  • 面向能源系统的深度强化学习算法性能比较及最优调度策略代码实践
  • 微服务安全实战指南:从授权到日志,全面解析核心模式与最佳实践
  • 【机器人】基于RRT算法进行移动机器人的路径规划,并在路径上应用卡尔曼定位不确定性附matlab代码
  • P2057 [SHOI2007] 善意的投票 / [JLOI2010] 冠军调查
  • 暖冬萌娃必备!童装羽绒服深度测评大揭秘 - 品牌测评鉴赏家
  • 2026国内最新天然野生沉香生产厂家top5推荐!广东广州等地优质沉香供应链权威榜单发布,品质纯正选品指南 - 品牌推荐2026
  • 从零实现一个生产级 RAG 语义搜索系统:C++ + ONNX + FAISS 实战
  • 宝妈必冲✨0-16岁童装羽绒服实测|保暖不踩雷,覆盖全年龄段 全预算 - 品牌测评鉴赏家
  • 题解:P15246 [WC2026] 猫和老鼠
  • 【安全测试】5_应用服务器安全性测试 _SQL注入和文件上传漏洞
  • 【系统分析师】7.6 软件产品线
  • P1344 [USACO4.4] 追查坏牛奶 Pollutant Control