有两种方法:

1.使用 order-by 属性
IE5 & IE6 都适用:可以使用 xsl:for-each 和 xsl:apply-templates 两个元素的 order-by 属性来控制XSL处理器对元素的处理顺序,排序显示XML资料.
<xsl:for-each select="//BOOK" order-by="+NAME">

</xsl:for-each>

<xsl:for-each select="//BOOK" order-by="+NAME;-AUTHOR>

</xsl:for-each>

其中, +元素 为升序, -元素 为降序.如果要多个元素依次排列,中间用;号.


2.使用 xsl:sort 元素
IE6 适用,功能比上者更加强大. xsl:sort 同样需要和 xsl:for-each 和 xsl:apply-templates 两个元素配合使用,只是它不再作为这两个元素的属性,而是作为这两个元素的子元素出现.

它有几个重要属性:
data-type:如果为number,表示按数字格式排序;如果为text,表示按文本格式排序.
case-order:表示大写在前还是小写在前.可以设为 upper-first 或 lower-first.
lang:可以设为一个 NMTOKEN 值来表示按照该种语言排序.
order:可以设为ascending或descending,表示按升序还是降序排序.
<xsl:for-each select="//BOOK">
    
<xsl:sort select="NAME" data-type="text"/>
    
</xsl:for-each>
posted on 2005-07-21 21:53  wddavid  阅读(1239)  评论(1编辑  收藏  举报