2

我有输入

<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 呢?

4

1 回答 1

2

尝试将<HD>源节点连接到Iteration functoid

为了使您的值变平,<DTP>您将需要Table Looping functoid

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

于 2011-12-20T15:26:59.017 回答