上一篇小说 在SSIS 中使用 Web Service 以及 解析XML
数据

中介绍了选用SSIS的WebService控件解析XML数据,最后也涉嫌对于重回的XML数含有数组类型的时候供给一点额外的处理。

以身作则表达

WeatherWebService
是WebXml.com.cn 天气预告 Web
服务,数据每2.5钟头左右自动更新二回,准确可信赖。包涵 340
六个中国重视城市和 60 多个海外首要城市3日内的天气预告数据。

SSIS-XMLTask-ProcessArrays-1.jpg

大家能够通过那些服务的接口得到大家必要的都会或地面包车型大巴气象等消息。本示例将介绍在SSIS中用Web服务职责组件调用天气预先报告Web服务的接口查询城市的天气等新闻,因为再次回到XML格式的多少含有数组,所以用Foreach循环容器组件的NodeList枚举器来拍卖,获取大家必要的音信插入到数据库的表。

贯彻步骤

HTTP连接

首先大家树立多个HTTP连接,服务器U君越L如下:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl

SSIS-XMLTask-ProcessArrays-2.jpg

Web服务职务

拖入Web服务职务组件,打开编辑器,在正常面板中,HttpConnection连接选用上一步新建的Http连接,WSDLFile为祥和新建的三个wsdl格式的文件,OverwriteWSDLFile为True.点击【下载WSDL】。

SSIS-XMLTask-ProcessArrays-3.jpg

切换来输入面板,Method中甄选getWeatherbyCityName,然后下边现身的变量里填3个都市名称,当然也足以用变量。

SSIS-XMLTask-ProcessArrays-4.jpg

切换成输出面板,那里,大家将回到的XML格式的数码保存到三个Object类型的变量里。那样Web服务职责组件就设置好了。

SSIS-XMLTask-ProcessArrays-5.jpg

回来数听盛名

到WeatherWebService网站上查看getWeatherbyCityName的调用表明:

根据城市或地区称号查询获得今后五日内天气景况、今后的天气实情、天气和生活指数
调用方法如下:输入参数:theCityName =
城市汉语名称(国外城市可用英文)或城市代码(不输入私下认可为东京市),如:法国首都或 58367,如有城市称号再次请使用城市代码查询(可通过 getSupportCity 或
getSupportDataSet 获得);重临数据: 三个一维数组
String(22),共有2一个要素。
String(0) 到
String(4):省份,城市,城市代码,城市图片名称,最终更新时间。String(5)
到 String(11):当天的
气温,轮廓,风向和风力,天气趋势先导图片名称(以下称:图标一),天气趋势停止图片名称(以下称:图标二),今后的天气实际境况,天气和生存指数。String(12)
到 String(16):第贰天的
天气温度,概况,风向轻风力,图标一,图标二。String(17) 到
String(21):第拾日的
气温,概略,风向和风力,图标一,图标二。String(22)
被询问的都市或地面的牵线

能够见到重临的是二个一维数组。

SSIS-XMLTask-ProcessArrays-6.jpg

XML,SSIS-XMLTask-ProcessArrays-7.jpg

咱俩将用循环处理这么些一维数组,然后拿走大家需求的字段,比如省份,城市,城市代码,最后更新时间,当天气温,轮廓,风向清劲风力,将来的天气真实情形,天气和生活指数。

Foreach循环容器

在支配流中拖入Foreach循环容器,双击打开编辑器,在集合面板中,Enumerator选用Foreach
NodeList
枚举器,DocumentSourceType为输入的XML数据存款和储蓄类型,那里选用上一步的保存XML数据的变量,DocumentSource为变量名称。

EnumerationType选取NodeText,因为此地我们想要的是XML数据中<string>标签中的值,不是节点。OuterXPathStringSourceType是XPath查询的体系,那里大家选DirectInput,然后OuterXPathString是大家查询XML的节点语法,那里填/ArrayOfString/*,它象征查询XML数据中的ArrayOfString那么些节点下的装有节点,具体的XPath语法能够参照XPath
教程

SSIS-XMLTask-ProcessArrays-8.jpg

切换成变量映射面板,那里新建二个变量保存每一回循环取到<string>节点的时候,节点里的值。那样,Foreach循环容器设置就实现了。

SSIS-XMLTask-ProcessArrays-9.jpg

新闻输出

为便于演示,笔者就不三番五次数据库了,把获得到的音信展现出来就好了。将八个本子职务拖入到Foreach循环容器里面。双击打开编辑器,脚本类型这里用的VBA,然后新建了连个变量:ID,InfoStr,ID是每便循环的下标值,依次加1,InfoStr保存组合成的消息值。然后在ReadWriteVariables里添加进去。点击【编辑脚本】,打开脚本编辑器,输入处理代码。

SSIS-XMLTask-ProcessArrays-10.jpg

SSIS-XMLTask-ProcessArrays-11.jpg

最终将整合消息字符串输出,依然拖入一个剧本职分,编辑器设置如下:

SSIS-XMLTask-ProcessArrays-12.jpg

终极执行包职分,可以看看输出的消息。

SSIS-XMLTask-ProcessArrays-13.jpg

转载请注脚出处(http://www.c-xuan.com/SSIS-XMLTask-ProcessArrays)

相关文章

网站地图xml地图