XSLT与前兄弟一起排序::

RRZ*_*ope 5 sorting xslt

在foreach循环中我想使用前兄弟::

<for-each..>
    <xsl:sort select="type"/>
    <xsl:when test="preceding-sibling::data[1]/type != type
Run Code Online (Sandbox Code Playgroud)

问题是foreach中的"type"与未排序的前兄弟比较,例如

data1/type = 1 
data2/type = 2
data3/type = 1
Run Code Online (Sandbox Code Playgroud)

将在第二个循环中比较silbling = 2(原始未排序)和type = 1(因为它已排序)

有办法吗?

更新:我的意图如下

before             after
data/type2         type1 value1
data/type1         type1 value2 
data/type1         and speaking in HTML a spacer here (I compare type2:value to preceding-sibling value
data/type2         type2 value1
                   type2 value2
Run Code Online (Sandbox Code Playgroud)

我有其中类型是城镇地址的未排序的,我需要通过镇,取决于值和其他领域(部分工作做一些东西排序的HTML表,但因为与前同辈比较是不在排序的每个人工作,我遇到了问题

Lar*_*rsH 1

您是否想按类型对数据元素进行分组?让我们知道您想要做什么,我们可能会提供帮助(正如@Michael Kay 所说)。

一种选择(在 XSLT 2.0 中或使用节点集扩展)是将数据元素排序复制到新变量,然后xsl:for-each在该新变量中的节点集上运行。然后,前同级关系将反映排序顺序。