排序错误

时间:2015-05-17 23:55:50

标签: html xml html5 xslt

我是xsl的新手。我正在尝试按照页面数量排序一系列书籍。为此,我写了一个简单的xsl文件,但它给了我一个有线输出。它排序了一些元素,它也留下一些未排序的元素。为什么我有这个输出?如何解决?

输出:

xml文件:

 <?xml version='1.0' encoding='UTF-8'?>
    <?xml-stylesheet type='text/xsl' href='sort.xslt'?>
    <book>
       <entry type='child'>
           <title>amar boi</title>
           <page>100</page>
       </entry>
       <entry type='child'>
           <title>adhunik biggan</title>
           <page>200</page>
       </entry>
       <entry>
           <title>machine design</title>
           <page>10000</page>
       </entry>
         <entry  type='child'>
           <title>amar bondhu rashed</title>
           <page>100</page>
       </entry>
         <entry>
           <title>baler boi</title>
           <page>1000</page>
       </entry>
         <entry>
           <title>fanush</title>
           <page>90</page>
       </entry>
    </book>

Xsl文件:

<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0' >
<xsl:template match='/'>
<html>
<body>
 <table style='border:1px solid black;'>
     <thead>
        <tr>
           <td>title</td>
           <td>page</td>
        </tr>
     </thead>
     <xsl:apply-templates select='book/entry'>
        <xsl:sort select='page'/>
     </xsl:apply-templates>

 </table>
</body>
</html>
</xsl:template>
<xsl:template match='book/entry'>
    <tr>


        <td><xsl:value-of  select='title'/></td>
        <td><xsl:value-of select='page'/></td>


    </tr>
</xsl:template>
</xsl:stylesheet>

1 个答案:

答案 0 :(得分:2)

您可以尝试将数据类型=&#39; <&#39; 添加到xsl:sort:

<xsl:sort select='page'  data-type='number' />

当前的排序输出看起来像被视为字符串,这是数据类型的默认值。