【发布时间】:2021-05-22 12:11:48
【问题描述】:
我正在使用 XSLT 1.0
我正在尝试转换一条输入消息。该输入消息由 4 种类型的节点 A、B、Order、Article 组成。喜欢这个:
A
B
Order0
Article100
Article102
A
B
Order1
Article101
A
B
A
B
A
B
etc
我的目标是将A和B节点放在消息的开头,所以我有:
A
B
A
B
A
B
A
B
A
B
Order0
Article100
Article102
Order1
Article101
这是一个例子:
输入
<Messages>
<Message>
<A>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</A>
</Message>
<Message>
<B>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</B>
</Message>
<Message>
<Order>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Order>
</Message>
<Message>
<Article>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Article>
</Message>
<Message>
<Article>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Article>
</Message>
<Message>
<A>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</A>
</Message>
<Message>
<B>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</B>
</Message>
<Message>
<Order>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Order>
</Message>
<Message>
<Article>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Article>
</Message>
<Message>
<A>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</A>
</Message>
<Message>
<B>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</B>
</Message>
</Messages>
输出
<Messages>
<Message>
<A>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</A>
</Message>
<Message>
<B>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</B>
</Message>
<Message>
<A>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</A>
</Message>
<Message>
<B>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</B>
</Message>
<Message>
<A>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</A>
</Message>
<Message>
<B>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</B>
</Message>
<Message>
<Order>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Order>
</Message>
<Message>
<Article>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Article>
</Message>
<Message>
<Article>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Article>
</Message>
<Message>
<Order>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Order>
</Message>
<Message>
<Article>
<SomeData>somedata</SomeData>
<SomeData2>somedata</SomeData2>
</Article>
</Message>
</Messages>
不幸的是,由于我正在开发旧版本的 Biztalk,因此我受到 xslt 1.0 的限制。 我考虑过可能使用 order by,但只针对那些 A 和 B 节点。
【问题讨论】:
标签: xml xslt mapping xslt-1.0 biztalk