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

发布于 2024-12-22 10:50:48 字数 1243 浏览 2 评论 0原文

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

I'm trying to get the value of the a field from the previous node. I need it so that my map can output a normalized data set (i.e. the left side is denormalized).

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

Should result in the following:

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

The problems I'm facing is that if I try to use xslt, it seems I can specify which index I want for a particular column, but I'm not able to know what column I'm in. Or I have my current index but I can't seem to use it to get at the value of the previous iteration. Or I could do the mapping in two parts (first header/order and then the details/items) but, even then, how do I keep each tag from being created for each possible tag?

How is this problem usually handled in Biztalk - I figure I'm just not strong enough in xslt, it seems like it can do nearly anything and I just don't know the correct syntax.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

躲猫猫 2024-12-29 10:50:48

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

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

You can use munecian grouping in xslt for achieving this. Below link gives the exact solution you are looking for.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文