使用xslt functoid

时间:2011-12-19 23:30:42

标签: biztalk xslt biztalk-2010 biztalk2006r2

我输入了

<Loop2300>
    <HD></HD>
    <DTP>
        <DTP1></DTP1> 
        <DTP2></DTP2> 
        <DTP3></DTP3>
   </DTP> 
   <DTP>
        <DTP1></DTP1> 
        <DTP2></DTP2> 
        <DTP3></DTP3>
   </DTP> 
</Loop2300>
<Loop2300>
    <HD></HD>
    <DTP>
        <DTP1></DTP1> 
        <DTP2></DTP2> 
        <DTP3></DTP3>
    </DTP>
    <DTP>
        <DTP1></DTP1> 
        <DTP2></DTP2> 
        <DTP3></DTP3>
    </DTP> 
</Loop2300>

我将所有DTP的值放在SQL表中。与DTP一起,我在目标模式中有一个id元素,我必须将序列号放在HD中。

所以输出会这样:

1    DTP1 DTP2 DTP3

1     DTP1 DTP2 DTP3

2    DTP1 DTP2 DTP3

2    DTP1 DTP2 DTP3

我正在使用XSLT functoid内联xslt调用模板。

我正在使用

<xsl:template>
    <xsl:for-each select="TS834_2300_Loop/HD_HealthCoverage">
        <xsl:number value="position()" format="1. "/>
    </xsl:for-each>
</xsl:template>

代码没有输入,一个输出到Id

但它的给定错误转换失败。

那么我需要做些什么改变来获得适当的ID?

1 个答案:

答案 0 :(得分:2)

尝试将<HD>源节点与http://i.msdn.microsoft.com/dynimg/IC161727.gif Iteration functoid连接。

要在<DTP>下展平您的值,您需要http://i.msdn.microsoft.com/dynimg/IC150357.gif Table Looping functoid

我现在没有准备好我的BizTalk开发机器来构建一个完整的原型,但这应该给你一个起点。