'XML task' xslt 对 XML 文件进行反规范化时出错
Error with 'XML task' xslt to denormalise XML file
我尝试使用 SSIS 转换 xml 文件时遇到此错误,使用 xslt 的 'XML task':
[任务 XML] 错误:“发生错误并显示以下错误消息:”样式表必须以元素 'xsl:stylesheet' 或 'xsl:transform' 或元素文字结果开头具有属性 'xsl:version',前缀 'xsl' 标识命名空间 'http://www.w3.org/1999/XSL/Transform'.".
这是 XLS 文件
***<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<RLUEx>
<xsl:for-each select ="RLUEx">
<RL0101Ax><xsl:value-of select="RL0101/RL0101x/RL0101Ax"/></RL0101Ax>
</xsl:for-each>
</RLUEx>
</xsl:template>
</xsl:stylesheet>***
如您所见,它按照错误消息中的要求以 xsl:stylesheet 开头
[1]: https://i.stack.imgur.com/GHsjX.png
如我所料,应该切换 XML 和 XSLT 参数。
这是 SSIS XML 任务、操作 XSLT 的配置方式。
XSLT
您从未分享过想要的输出。这是我的疯狂猜测。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/RL">
<RLUEx>
<xsl:for-each select="RLUEx">
<r>
<RL0101Ex>
<xsl:value-of select="RL0101/RL0101x/RL0101Ex"/>
</RL0101Ex>
<RL0101Fx>
<xsl:value-of select="RL0101/RL0101x/RL0101Fx"/>
</RL0101Fx>
<RL0101Gx>
<xsl:value-of select="RL0101/RL0101x/RL0101Gx"/>
</RL0101Gx>
</r>
</xsl:for-each>
</RLUEx>
</xsl:template>
</xsl:stylesheet>
我尝试使用 SSIS 转换 xml 文件时遇到此错误,使用 xslt 的 'XML task':
[任务 XML] 错误:“发生错误并显示以下错误消息:”样式表必须以元素 'xsl:stylesheet' 或 'xsl:transform' 或元素文字结果开头具有属性 'xsl:version',前缀 'xsl' 标识命名空间 'http://www.w3.org/1999/XSL/Transform'.".
这是 XLS 文件
***<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<RLUEx>
<xsl:for-each select ="RLUEx">
<RL0101Ax><xsl:value-of select="RL0101/RL0101x/RL0101Ax"/></RL0101Ax>
</xsl:for-each>
</RLUEx>
</xsl:template>
</xsl:stylesheet>***
如您所见,它按照错误消息中的要求以 xsl:stylesheet 开头
[1]: https://i.stack.imgur.com/GHsjX.png
如我所料,应该切换 XML 和 XSLT 参数。
这是 SSIS XML 任务、操作 XSLT 的配置方式。
XSLT
您从未分享过想要的输出。这是我的疯狂猜测。
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/RL">
<RLUEx>
<xsl:for-each select="RLUEx">
<r>
<RL0101Ex>
<xsl:value-of select="RL0101/RL0101x/RL0101Ex"/>
</RL0101Ex>
<RL0101Fx>
<xsl:value-of select="RL0101/RL0101x/RL0101Fx"/>
</RL0101Fx>
<RL0101Gx>
<xsl:value-of select="RL0101/RL0101x/RL0101Gx"/>
</RL0101Gx>
</r>
</xsl:for-each>
</RLUEx>
</xsl:template>
</xsl:stylesheet>