010_SSIS xml task 中的六种操作

1. 验证 

xml 文件验证,输入为要验证的xml文件,第二操作数为xsd文件,输出SaveOperationResult 设置为true将验证结果

以字符串的方式输出true或者false

2.xlst 样式表转换,例如可以将左边的xml转换为右边的xml

 

 

 

 

 

 

 

 

 

 样式表.xlst文件如下:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/"> 
<TSSalesOrder>
<xsl:for-each select="SalesOrder/SalesOrderDetail">
<TSSalesOrderDetail>
<OrderID>
<xsl:attribute name="DetailID">
<xsl:value-of select="SalesOrderDetailID"/>
</xsl:attribute>
<xsl:value-of select="SalesOrderID"/>
</OrderID> 
<ProductID>
<xsl:attribute name="UnitPrice">
<xsl:value-of select="UnitPrice"/>
</xsl:attribute>
<xsl:attribute name="UnitPriceDiscount">
<xsl:value-of select="UnitPriceDiscount"/>
</xsl:attribute>
<xsl:value-of select="ProductID"/>
</ProductID>
<LineTotal><xsl:value-of select="LineTotal"/></LineTotal>
</TSSalesOrderDetail>
</xsl:for-each> 
</TSSalesOrder>
</xsl:template>
</xsl:stylesheet>

  含义:output  method="xml"指输出为xml, mathc="/" 从根节点进行匹配,做一个foreach进行遍历,

遍历到新的节点<TSSalesOrder>节点下面,然后在<TSSalesOrderDetail>新增节点<OrderID>,并

为该节点增加一个属性DetailID,属性的值取自原SalesOrderDetailID中,OrderID标签的值取自原SalesOrderID

标签的值,ProductID取值同理。

3.xpath  xpath的作用是使用路径在xml中选取相应的节点。

 

 

 输入是源xml文件,第二操作数为xpath语法,输出为生成的新的xml文件,PutResultSetInOneNode设置为true,是将输出的文件放到一个大的节点下面。

 

计算返回的值是类的名称(一般无意义),值是只取xml节点 里的值(一般也不采用)

4.merge,将xml中的文件内容合并到另外一个xml文件中

 

 

 

 

 

如将第二个xml合并到第一个xml中,如若合并选项内容为空,则sales_order_2.xml直接合并到sales_order_3.xml中的最下方,如果要想合并到指定位置,

那么需要在合并选项中写xpath表达式,例/ORDERS/TSSalesOrder[@ID='1002'] 就是将2.xml合并到ORDERS/TSSalesOrder 并且ID的属性为1002的下面

 5.diff(差异),比较两个xml文件的不同

 

 

 

 

 savadiffgram设置为true,则将生成差异文件,根据差异文件可以通过patch(修补)将xml文件进行还原。

saveoperationresult设置为true,则如果有差异输出false,无差异输出true

6.patch(修补),根据差异文件,反向生成xml文件

 

 

 SALES_ORDER_1.xml文件根据差异文件,采用修补的方式,重新生成了与SALES_ORDER_2.xml内容完全相同的文件

 

posted @ 2020-01-13 23:09  renzy194  阅读(1644)  评论(0编辑  收藏  举报