【问题标题】:using xslt functoid使用 xslt functoid
【发布时间】:2011-12-19 23:30:41
【问题描述】:

我有类似的输入

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

【问题讨论】:

  • 转换错误的错误信息是什么?为什么需要使用 Xslt 调用模板 functoid 来执行此操作?您只需使用 Index functoid 即可接收序列号。
  • 我认为 Index functoid 没有给出序列号,它只给出了序列的第一个内容......或者它也给出了序列号......错误是无法转换

标签: biztalk xslt biztalk-2010 biztalk2006r2


【解决方案1】:

尝试将您的 &lt;HD&gt; 源节点连接到 Iteration functoid.

要在&lt;DTP&gt; 下扁平化您的值,您将需要 Table Looping functoid.

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

【讨论】:

    猜你喜欢
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2015-01-06
    • 2023-03-15
    • 2015-04-28
    • 2014-07-23
    • 2015-09-24
    相关资源
    最近更新 更多