关于XSL中xsl:for-each的order-by属性的使用

 在XML的教学中无意中发现有时候xsl:for-each的order-by属性不可用,经过测试发现是命名空间的问题。

当这样声明时,order-by属性可用

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

而当使用如下声明时,order-by属性不可用

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

原来order-by是XML草案中的内容,在正式版本中已经取消了它,而是以xsl:sort取而代之。

例如以下代码片断:

          <xsl:for-each select="students/student" order-by="phone">
           <tr>
                <td><xsl:value-of select="name"/></td>
                <td><xsl:value-of select="phone"/></td>
                <td><xsl:value-of select="birthday"/></td>
           </tr>
            </xsl:for-each>

应改写为以下形式:

            <xsl:for-each select="students/student">
            <xsl:sort select="phone"/>
           <tr>
                <td><xsl:value-of select="name"/></td>
                <td><xsl:value-of select="phone"/></td>
                <td><xsl:value-of select="birthday"/></td>
           </tr>
            </xsl:for-each>

你可能感兴趣的:(xml,测试,XSL,stylesheet)