如何获得上一次迭代的字段值?

时间:2011-12-21 13:35:02

标签: mapping biztalk

我正在尝试从前一个节点获取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中不够强大,似乎它几乎可以做任何事情而且我只是不知道正确的语法。

1 个答案:

答案 0 :(得分:0)

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

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