本文概述
XSLT <xsl:sort>元素用于在节点上指定排序条件。它以排序形式显示输出。
在XSL文件的<xsl:for-each>元素内添加了<xml:sort>元素, 以对输出进行排序。
<xsl:sort
select = string-expression
lang = { nmtoken }
data-type = { "text" | "number" | QName }
order = { "ascending" | "descending" }
case-order = { "upper-first" | "lower-first" } >
</xsl:sort>
参数说明
Index | Name | Description |
---|---|---|
1) | select | 用于节点的排序键。 |
2) | lang | 它指定用于确定排序顺序的语言字母。 |
3) | data-type | 它指定文本的数据类型。 |
4) | order | 用于指定排序顺序。默认情况下, 排序顺序为升序。 |
5) | case-order | 用于通过大写指定字符串的排序顺序。默认值为”高优先级”。 |
XSLT <xsl:sort>元素示例
让我们以创建一个<employee>元素表为例, 该表的属性为” id”并为其子元素<firstname>, <lastname>, <nickname>和<salary>遍历每个学生, 并按姓氏对其进行排序。
employee.xml
<?xml version = "1.0"?>
<?xml-stylesheet type = "text/xsl" href = "employee.xsl"?>
<class>
<employee id = "001">
<firstname>Aryan</firstname>
<lastname>Gupta</lastname>
<nickname>Raju</nickname>
<salary>30000</salary>
</employee>
<employee id = "024">
<firstname>Sara</firstname>
<lastname>Khan</lastname>
<nickname>Zoya</nickname>
<salary>25000</salary>
</employee>
<employee id = "056">
<firstname>Peter</firstname>
<lastname>Symon</lastname>
<nickname>John</nickname>
<salary>10000</salary>
</employee>
</class>
员工.xsl
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:stylesheet version = "1.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:template match = "/">
<html>
<body>
<h2>Employee</h2>
<table border = "1">
<tr bgcolor = "pink">
<th>ID</th>
<th>First Name</th>
<th>Last Name</th>
<th>Nick Name</th>
<th>Salary</th>
</tr>
<xsl:for-each select = "class/employee">
<xsl:sort select = "lastname"/>
<tr>
<td><xsl:value-of select = "@id"/></td>
<td><xsl:value-of select = "firstname"/></td>
<td><xsl:value-of select = "lastname"/></td>
<td><xsl:value-of select = "nickname"/></td>
<td><xsl:value-of select = "salary"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
输出
注意:上表按姓氏排序。
评论前必须登录!
注册