我有一个多命名空间 XML 文件作为源。我必须将所有 namespace 属性值存储在 DW 的单个表中,
任何人都可以建议我如何使用该类型的文件作为源吗?
最佳答案
我最近遇到了这个问题,所以我想发布一些关于如何解决这个问题的注释。在尝试加载多命名空间 XML 文档之前,首先需要使用 XSLT 转换对其进行转换。 SSIS 可以通过 XML 任务来完成此操作。
从工具栏拉出一个 XML 任务并将其放置在您的控制流中
在文件系统中新建一个XSLT文件,并使用以下代码作为内容:
<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/2013/XSL/Transform">
<xsl:output method="xml" indent="no" />
<xsl:template match="/|comment()|processing-instruction()">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|node()" />
</xsl:element>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="." />
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
打开 XML 任务并设置以下属性。
- 操作类型 = XSLT
- 源类型 = 文件连接
- Source = 为您设置的源设置的文件连接 对于导入文件。
- SaveOperationResults =True
- 目标类型 = 文件
- 目标 = 为目标文件设置的文件连接
- OverwriteDestination= 设置为首选
- SecondOperandType=文件连接
- SecondOperand= 设置用于保存上述 XSLT 代码的文件
将这些项目添加到您的包中后,您应该能够运行它,并且它将生成删除了命名空间的第二个文件。
关于ssis - 如何在 SSIS 中使用多个命名空间文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19999695/