【问题标题】:How to get the previous iteration's field value?如何获取上一次迭代的字段值?
【发布时间】:2011-12-21 13:35:01
【问题描述】:

我正在尝试从前一个节点获取 a 字段的值。我需要它,以便我的地图可以输出规范化的数据集(即左侧是非规范化的)。

<arrayOrdersItems>
    <OrderItem>
        <Order id1>
        <Item 1>
    </OrderItem>
    <OrderItem>
        <Order id1>
        <Item 2>
    </OrderItem>
    <OrderItem>
        <Order id2>
        <Item 1>
    </OrderItem>
    <OrderItem>
        <Order id3>
        <Item 1>
    </OrderItem>
</arrayOrderItems>

应该导致以下结果:

<array>
    <Order>
        <Order id1>
        <Items>
            <Item 1>
            <Item 2>
        </Items>
    </Order>
    <Order>
        <Order id2>
        <Items>
            <Item 1>
        </Items>
    </Order>
    <Order>
        <Order id3>
        <Items>
            <Item 1>
        </Items>
    </Order>
</array>

我面临的问题是,如果我尝试使用 xslt,似乎我可以为特定列指定我想要的索引,但我无法知道我在哪一列。或者我有我当前的索引,但我似乎无法使用它来获取上一次迭代的值。或者我可以分两部分进行映射(第一个标题/订单,然后是详细信息/项目),但即便如此,我如何防止为每个可能的标签创建每个标签?

这个问题在 Biztalk 中通常是如何处理的 - 我认为我在 xslt 中不够强大,它似乎几乎可以做任何事情,我只是不知道正确的语法。

【问题讨论】:

    标签: mapping biztalk


    【解决方案1】:

    您可以在 xslt 中使用 munecian 分组来实现此目的。下面的链接给出了您正在寻找的确切解决方案。

    http://blogs.msdn.com/b/chrisromp/archive/2008/07/31/muenchian-grouping-and-sorting-in-biztalk-maps.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多