Я пытаюсь получить значение поля из предыдущего узла. Мне это нужно, чтобы моя карта могла выводить нормализованный набор данных (т. Е. Левая сторона была денормализована).
<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, похоже, что он может делать почти все, и я просто не знаю правильный синтаксис.