【发布时间】:2013-12-04 16:37:19
【问题描述】:
我有一个平面源结构,需要按以下条件分组:
元素 P2 可以在 P1 之后多次出现。直到下一次出现 P1 之前,P1 和所有以下 P2 元素都需要分组到“位置”结构中。 “位置”在下一个 P1 元素出现时重复。
来源示例:
<P1><field1/><field2/></P1>
<P2><field1/><field2/><field3/></P2>
<P1><field1/><field2/></P1>
<P2><field1/><field2/><field3/></P2>
<P2><field1/><field2/><field3/></P2>
<P2><field1/><field2/><field3/></P2>
<P2><field1/><field2/><field3/></P2>
<P1><field1/><field2/></P1>
<P2><field1/><field2/><field3/></P2>
<P2><field1/><field2/><field3/></P2>
结果应该是:
<Position>
<P1><field1/><field2/></P1>
<P2><field1/><field2/><field3/></P2>
</Position>
<Position>
<P1><field1/><field2/></P1>
<P2><field1/><field2/><field3/></P2>
<P2><field1/><field2/><field3/></P2>
<P2><field1/><field2/><field3/></P2>
<P2><field1/><field2/><field3/></P2>
</Position>
<Position>
<P1><field1/><field2/></P1>
<P2><field1/><field2/><field3/></P2>
<P2><field1/><field2/><field3/></P2>
</Position>
我正在尝试使用轴跟随兄弟,但无法弄清楚如何选择所有 P2 元素到 P1 的下一次出现。或者我应该在这种情况下使用 xsl:key 吗?
【问题讨论】: