按首字母排序

时间:2011-04-07 16:28:57

标签: xslt sorting

  

可能重复:
  Ignoring 'A' and 'The' when sorting with XSLT

我有一个地方列表,但是这些地方的一些地方前面有'the'这个词。我需要帮助通过丢弃'the'按字母顺序对这些地方进行排序。例如山脉,应该只是山脉。我可以删除单词'the'以使用子字符串显示名称但是排序似乎无法读取它。

到目前为止,我有这个。

<xsl:sort data-type="text" order="ascending" select="@places" />

回来的例子:

阿尔法
西格玛
测试版

希望它回来:

阿尔法
公测
西格玛

这只是我如何从名称中删除它的一个例子:

 <xsl:choose>
      <xsl:when test="substring((@places), 0, 4) = 'The'">
           <xsl:value-of select="substring(
                                    (@places),
                                    4,
                                    string-length(@places)
                                 )" />
      </xsl:when>
      <xsl:otherwise>
           <xsl:value-of select="@places" />
      </xsl:otherwise>
 </xsl:choose>

1 个答案:

答案 0 :(得分:1)

使用:

<xsl:sort select="substring(@places, 5 * starts-with(@places,'the ')" /> 

注意:您还可以使用translate()函数来区分大小写。