BizTalk 2009 XSLT和属性值模板
我试图在BizTalk XSL转换中使用属性值类型来动态设置属性或其他元素名称。
请阅读更多信息:http://www.w3.org/TR/xslt#dt-attribute-value-template
以下代码是可选添加属性的XSL模板示例。
<xsl:template name="AttributeOptional"> <xsl:param name="value"/> <xsl:param name="attr"/> <xsl:if test="$value != ''"> <xsl:attribute name="{$attr}"> <xsl:value-of select="$value"/> </xsl:attribute> </xsl:if> </xsl:template>
在BizTalk中运行此脚本会导致“异常来自HRESULT:0x80070002”)
另一个我正在考虑的是调用一个msxsl:脚本函数来做同样的事情,但是我不能从函数中获取XSL输出上下文的句柄。
一个想法?
<xsl:template name="AttributeOptional">
<xsl:param name="value"/>
<xsl:param name="attr"/>
<xsl:if test="$value != ''">
<xsl:attribute name="{$attr}">
<xsl:value-of select="$value"/>
</xsl:attribute>
</xsl:if>
</xsl:template>
在BizTalk中运行此脚本会导致“异常来自HRESULT:0x80070002”)
只是我在“猜测模式 ”中:
至少有两个原因可能会导致此代码出错:
提供的$attr
值不是有效的XML名称(例如12345
)。
该属性是生成的,但以前生成的节点不是一个元素(例如,生成的是<someElement> sometext
then this attribute)。