在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表,但因为与前同辈比较是不在排序的每个人工作,我遇到了问题
您是否想按类型对数据元素进行分组?让我们知道您想要做什么,我们可能会提供帮助(正如@Michael Kay 所说)。
一种选择(在 XSLT 2.0 中或使用节点集扩展)是将数据元素排序复制到新变量,然后xsl:for-each在该新变量中的节点集上运行。然后,前同级关系将反映排序顺序。