xml中如何对数字字段进行排序

我的xml文件的内容如下:

 1<list>
 2<user>
 3<num>1</num>
 4<cn>demo1</cn>
 5<realname>demo1</realname>
 6<mailquota>51200</mailquota>
 7<creator>demo1</creator>
 8<createtime>2003-05-08</createtime>
 9<accountstatus>active</accountstatus>
10</user>
11<user>
12<num>2</num>
13<cn>hbq</cn>
14<realname>hbq</realname>
15<mailquota>102400</mailquota>
16<creator>hbq</creator>
17<createtime>2003-05-09</createtime>
18<accountstatus>active</accountstatus>
19</user>
20<user>
21<num>3</num>
22<cn>sammiewang</cn>
23<realname>sammiewang</realname>
24<mailquota>102400</mailquota>
25<creator>demo1</creator>
26<createtime>2003-05-09</createtime>
27<accountstatus>active</accountstatus>
28</user>
29<user>
30<num>4</num>
31<cn>hbq01</cn>
32<realname>hbq</realname>
33<mailquota>10240</mailquota>
34<creator>demo1</creator>
35<createtime>2003-05-12</createtime>
36<accountstatus>active</accountstatus>
37</user>
38</list>

我对mailquota字段的排序文件的内容如下:

 1<users>
 2<xsl:for-each order-by="mailquota" select="user" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 3<user>
 4<num><xsl:value-of select="num"></xsl:value-of></num>
 5<cn><xsl:value-of select="cn"></xsl:value-of></cn>
 6<realname><xsl:value-of select="realname"></xsl:value-of></realname>
 7<mailquota><xsl:value-of select="mailquota"></xsl:value-of></mailquota>
 8<creator><xsl:value-of select="creator"></xsl:value-of></creator>
 9<createtime><xsl:value-of select="createtime"></xsl:value-of></createtime>
10<accountstatus><xsl:value-of select="accountstatus"></xsl:value-of></accountstatus>
11</user>
12</xsl:for-each>
13</users>

请问如何修改这个xsl文件才能实现对“mailquota”字段按数字大小进行排序,谢谢!!
知道的帮个忙,不知道的帮忙顶一下!!谢谢 各位大虾

---------------------------------------------------------------

try

order-by="number(mailquota)"

note, you should use XSLT
---------------------------------------------------------------

我试了order-by="number(mailquota)"但是不行,提示错误是“无效的函数调用”,我不会用XSLT,你能指点一下嘛?谢谢!!
---------------------------------------------------------------

思归的方法正确:

 1<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
 2<xsl:template match="/">
 3<users>
 4<xsl:apply-templates order-by="number(mailquota)" select="/list/user"></xsl:apply-templates>
 5</users>
 6</xsl:template>
 7<xsl:template match="user">
 8<user>
 9<num><xsl:value-of select="num"></xsl:value-of></num>
10<cn><xsl:value-of select="cn"></xsl:value-of></cn>
11<realname><xsl:value-of select="realname"></xsl:value-of></realname>
12<mailquota><xsl:value-of select="mailquota"></xsl:value-of></mailquota>
13<creator><xsl:value-of select="creator"></xsl:value-of></creator>
14<createtime><xsl:value-of select="createtime"></xsl:value-of></createtime>
15<accountstatus><xsl:value-of select="accountstatus"></xsl:value-of></accountstatus>
16</user>
17</xsl:template>
18</xsl:stylesheet>

---------------------------------------------------------------

for XSLT, try

 1<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 2<xsl:template match="/">
 3<users>
 4<xsl:for-each select="/list/user">
 5<xsl:sort data-type="number" select="mailquota"></xsl:sort>
 6<user>
 7<num><xsl:value-of select="num"></xsl:value-of></num>
 8<cn><xsl:value-of select="cn"></xsl:value-of></cn>
 9<realname><xsl:value-of select="realname"></xsl:value-of></realname>
10<mailquota><xsl:value-of select="mailquota"></xsl:value-of></mailquota>
11<creator><xsl:value-of select="creator"></xsl:value-of></creator>
12<createtime><xsl:value-of select="createtime"></xsl:value-of></createtime>
13<accountstatus><xsl:value-of select="accountstatus"></xsl:value-of></accountstatus>
14</user>
15</xsl:for-each>
16</users>
17</xsl:template>
18</xsl:stylesheet>

---------------------------------------------------------------

我试了你的方法,在html中调用没有显示的结果,好像xsl根本没有把数据调用进去。
---------------------------------------------------------------

怎么在html中调用这个xslt文件啊,我是新手,希望得到指点!!
---------------------------------------------------------------

各位大侠来帮帮忙啊,拜托了,在线等候啊!!!!

---------------------------------------------------------------
问题已解决,谢谢大家的帮助!!!

Published At
Categories with Web编程
comments powered by Disqus