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内容完全相同的文件