所使用的名字空间:xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
Syntax
<xsl:sort
select="expression"
lang="language-code"
data-type="text|number|qname" //数据类型,可支持按数字排序
order="ascending|descending" //排序升序,降序
case-order="upper-first|lower-first"/>
test1.xml
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet type="text/xsl" href="test1.xsl"?>
<source>
<name>John</name>
<name>Josua</name>
<name>Charles</name>
<name>Alice</name>
<name>Martha</name>
<name>George</name>
</source>
test.xsl
<xsl:stylesheet version = '1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<TABLE>
<xsl:for-each select="//name">
<xsl:sort order="ascending" select="."/>
<TR> <TH><xsl:value-of select="."/></TH> </TR>
</xsl:for-each>
</TABLE>
</xsl:template>
</xsl:stylesheet>
所使用的名字空间:xmlns:xsl="http://www.w3.org/TR/WD-xsl"
Syntax
<xsl:for-each select="expression">
<!-- Content:(xsl:sort*,template) -->
</xsl:for-each>
示例:test.html
<html><head> 
<script>...
var sig=true
function sort(strKey) 
...{
var xml1=mxhxml.XMLDocument
var xsl1=mxhxsl.XMLDocument
var s1=xsl1.selectSingleNode("//xsl:for-each/@order-by")
if(s1.value==strKey) s1.value="-" + strKey
else
s1.value=strKey
document.all.mxh.innerHTML=xml1.transformNode(xsl1)
}
</script>
</head>
<body onload="sort('Name')">
<div id=mxh></div>
<XML id=mxhxsl>
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
点击标题排序:
<table border="2">
<tr>
<th onclick="sort('Name')" style="cursor:hand">名称</th>
<th onclick="sort('Email')" style="cursor:hand">电子邮件</th>
</tr>
<xsl:for-each select="/Custs/Cust" order-by="Name">
<tr>
<td><xsl:value-of select="Name"/></td>
<td><xsl:value-of select="Email"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
</XML>
<XML id=mxhxml>
<?xml version="1.0"?>
<Custs>
<Cust>
<Name>Nancy</Name>
<Email>www@yahoo.com</Email>
</Cust>
<Cust>
<Name>Peter</Name>
<Email>dotnet@aol.com</Email>
</Cust>
<Cust>
<Name>Rachel</Name>
<Email>billgates@microsoft.com</Email>
</Cust>
<Cust>
<Name>Seth</Name>
<Email>flying@yous.net</Email>
</Cust>
</Custs>
</XML> 
1)xsl:sort方式: 只需指定datatype="number"
2)ordey-by方式:只需指定ordey-by=number("结点")
3)另外,还需对脚本进行修改:
<script type="text/javascript">
function taxis(x)
{
//获取到xml,xsl文档,获取到node: selectSingleNode
if(x == '指定要排序的数字元素')
sortField.value='number('+x+')';
else
sortField.value=x;
if (this.rel == '+')
{
this.rel = '-';
}
else
{
sortField.value = '-'+sortField.value;
this.rel = '+';
}
//transformNode
}
</script>