基本结构:
<xsl:for-each select="XPath表达式">
<xsl:sort select="排序键" order="排序顺序"/>
<!-- 转换规则 -->
</xsl:for-each>
或
<xsl:apply-templates select="XPath表达式">
<xsl:sort select="排序键" order="排序顺序"/>
</xsl:apply-templates>
- select 属性:指定排序键的 XPath 表达式。
- order 属性:指定排序顺序,可以是 "ascending"(升序,默认值)或 "descending"(降序)。
示例:
考虑以下 XML 文档:
<books>
<book>
<title>Introduction to XSLT</title>
<author>John Doe</author>
<price>30</price>
</book>
<book>
<title>Advanced XSLT Techniques</title>
<author>Jane Smith</author>
<price>60</price>
</book>
</books>
下面是一个使用 <xsl:sort> 元素的 XSLT 样式表的例子:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="books">
<html>
<body>
<!-- 对book元素按照价格升序排序 -->
<xsl:for-each select="book">
<xsl:sort select="price" order="ascending"/>
<div>
<h2><xsl:value-of select="title"/></h2>
<p>Author: <xsl:value-of select="author"/></p>
<p>Price: $<xsl:value-of select="price"/></p>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
在这个例子中,<xsl:sort select="price" order="ascending"/> 用于对 <books> 元素下的所有 <book> 元素按照价格升序进行排序。
多重排序:
<xsl:sort> 元素支持多个排序键,按照列出的顺序进行排序。
<xsl:for-each select="book">
<xsl:sort select="author"/>
<xsl:sort select="price" order="descending"/>
<!-- 转换规则 -->
</xsl:for-each>
在这个例子中,首先按照作者升序排序,然后在相同作者的书籍中按价格降序排序。
总体而言,<xsl:sort> 元素允许对 XML 文档中的节点进行排序,提高了 XSLT 样式表的灵活性和适用性。
转载请注明出处:http://www.pingtaimeng.com/article/detail/12208/XML