Kettle使用_19 HTTP Client与XML JavaSript解析
? ? ? ? ? ? ? ? ? ? ? ? ? Kettle使用_19 HTTP Client與XML JavaSript解析
需求:通過Kettle實現http://mirrors.163.com/centos/7/os/x86_64/repodata/repomd.xml的Web調用并將數字類型的timestamp解析為時間類型。
解決方法:通過Kettle的生成記錄、HTTP Client、XML文件輸入、選擇改名值、JAVA Script組件來解決。其中HTTP Client負責接口的調用,XML文件輸入負責解析XML,JAVA Script組件負責解析整型timestamp。
Step1:新建個轉換
Step2: 拖個生成記錄組件,(該組件位于轉換的輸入分類下),配置如下:
Step3:拖個Http client,該組件位于轉換的查詢分類下。通過SHIFT與記錄生成組件連接。
Step3:配置HTTP Client組件,配置URL字段名為repomd(對應生成記錄里的字段),字段結果名為job-xml。
Step4:拖個xml數據輸入組件,該組件位于轉換的輸入分類下,并通過SHIFT與HTTP Client組件連接。
Step5:配置xml數據輸入組件見下:
配置XML解析源字段,這里是job-xml,需先勾選選項 XML源定義在一個字段里。
配置循環讀取路徑,這里是/repomd/data
配置字段解析,這里可通過獲取字段讓kettle自動解析。
注:這里的data_type字段需要自己手動輸入解析路徑, @type,加下:
Step6:拖動個選擇改名值(字段選擇)組件,位于轉換的轉換分類下。通過SHIFT與XML輸入數據連接。并配置該組件。
Step7:拖動個Java Script組件,位于轉換的腳本分類下。通過SHIFT與字段選擇組件連接。并配置該組件。
Java Script腳本:
//Script here //var commonTime = new Date(repomdtime*1000).Format("yyyy-MM-dd hh:mm:ss"); function add0(m){return m<10?'0'+m:m } var time = new Date(repomdtime*1000); var y = time.getFullYear(); var m = time.getMonth()+1; var d = time.getDate(); var h = time.getHours(); var mm = time.getMinutes(); var s = time.getSeconds(); var commonTime = y+'-'+add0(m)+'-'+add0(d)+' '+add0(h)+':'+add0(mm)+':'+add0(s);Step8:保存并運行并驗證該轉換。
完整流程示意:
總結
以上是生活随笔為你收集整理的Kettle使用_19 HTTP Client与XML JavaSript解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系统怎么直接重装系统 直接重装系统的方法
- 下一篇: Java调用.Net的web servi