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解析相关推荐

  1. java整合groove实战—xml文件解析

    背景:在JAVA中执行groovy有多种方式,个人觉得最舒服的莫过于使用IDE插件创建groovy工程,这样可以直接在java代码中引用groovy的类.因groovy的IDE插件会自动对groovy ...

  2. python之XML文件解析

    python对XML的解析 常见的XML编程接口有DOM和SAX,这两种接口处理XML文件的方式不同,当然使用场合也不同. python有三种方法解析XML,分别是SAX,DOM,以及ElementT ...

  3. Android XML pull 解析器

    Android 并未提供对 Java StAX API 的支持.但是,Android 确实附带了一个 pull 解析器,其工作方式类似于 StAX.它允许您的应用程序代码从解析器中获取事件,这与 SA ...

  4. iOS - XML 数据解析

    前言 @interface NSXMLParser : NSObjectpublic class NSXMLParser : NSObject 1.XML 数据 XML(Extensible Mark ...

  5. Python XML的解析与创建

    以下内容为装载: 文章出处 http://blog.csdn.net/SeeTheWorld518/article/details/49535211 XML解析基本思路是 现将xml 文档内容一次性全 ...

  6. Android开发历程_18(XML文件解析)

    前言  本文主要介绍在Android中怎样来解析XML文件.主要采用的是SAX机制,SAX全称为Simple API for XML,它既是一种接口,也是一个软件包.作为接口,SAX是事件驱动型XML ...

  7. php xml对象解析_php解析xml 的四种简单方法(附实例)

    XML处理是开发过程中经常遇到的,PHP对其也有很丰富的支持,本文只是对其中某几种解析技术做简要说明,包括:Xml parser, SimpleXML, XMLReader, DOMDocument. ...

  8. 开源分布式中间件 DBLE Schema.xml 配置解析

    文章来源:爱可生开源社区 作者:张沈波 1.DBLE项目介绍 DBLE 是企业级开源分布式中间件,江湖人送外号 "MyCat Plus":以其简单稳定,持续维护,良好的社区环境和广 ...

  9. iOS边练边学--iOS中的XML数据解析

    XML的解析方式 SAX 大小文件都可以 NSXMLParser DOM 最好是小文件 GDataXML NSXMLParser的用法 创建解析器来解析 // 创建XML解析器 NSXMLParser ...

最新文章

  1. Go 分布式学习利器(4)-- 条件和循环
  2. 大学生有必要学python吗_大学生学python到底有没有用?
  3. [HEOI2013] SAO(dp + 组合数 + 前缀和)
  4. 动态壁纸小程序源码-带流量主
  5. ufw禁止IP访问ubuntu服务器
  6. nopcommerce插件深度剖析
  7. jni开发-java调用c函数,c调用java函数实现
  8. ID3 决策树(基于西瓜数据集2.0)
  9. VelocityTracker使用详解
  10. 硬盘突然变raw格式_硬盘突然变成RAW格式解决办法
  11. 2021-10-20:分数到小数。给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。输入: num
  12. Java笔记:面向对象3大特性
  13. Python程序员面试,这些问题你必须提前准备!
  14. npm install报错 npm ERR 的四种解决办法
  15. 海量数据处理专题(八)——倒排索引(搜索引擎之基石)
  16. 小鹏高增长下的隐忧:太像特斯拉是一个魔咒?
  17. VisionMobile 2012年移动开发者经济报告(九) 四 应用市场销售(下)
  18. 狗年说狗--忠诚的卫士
  19. python教程:IO模块使用教程
  20. 【pytorch】错误:No module named ‘typing_extensions‘ 问题解决

热门文章

  1. OpenCASCADE绘制测试线束:数据交换命令之一般命令
  2. wxWidgets:wxRichTextEvent类用法
  3. wxWidgets:wxAutomationObject类用法
  4. boost::hana::contains用法的测试程序
  5. GDCM:把DICOM文件存在vector<char>里面的测试程序
  6. boost::callable_traits的remove_member_cv_t的测试程序
  7. ITK:使用Viola Wells互信息执行多模式注册
  8. ITK:使用写访问权迭代图像中的区域
  9. DCMTK:简单存储服务类提供者
  10. VTK:可视化算法之PineRootConnectivity