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)。

  • 链接地址: http://www.djcxy.com/p/34329.html

    上一篇: BizTalk 2009 XSLT and Attribute Value Templates

    下一篇: 0.95: problem with dyn:evaluate