以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  为什么order-by无效?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=5303)


--  作者:Mushroom
--  发布时间:1/27/2004 10:48:00 PM

--  为什么order-by无效?
<xsl:for-each select="××" order-by="××">
出错说在 'xsl:for-each' 上属性 'order-by' 无效?

谢谢。


--  作者:admin
--  发布时间:1/28/2004

--  
代码贴出来看看
--  作者:Mushroom
--  发布时间:1/28/2004 12:50:00 AM

--  
就是那段教学代码。
[code]
//mystyle.xsl


<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/REC-html40">

<xsl:template match="/">
<HTML>
  <HEAD>
    <TITLE>学生花名册</TITLE>
    <STYLE> .title{font-size:15pt; font-weight:bold; color:blue } .name{color:red}
    </STYLE>
  </HEAD>
  <BODY>
    <P class="title" >学生花名册</P>
    <xsl:apply-templates select="roster"/>
</BODY>
  </HTML>
  
  
</xsl:template>

<xsl:template match="roster">

<TABLE BORDER="1">
    <THEAD>
      <TD> <B>姓名</B> </TD>
      <TD> <B>籍贯</B> </TD>
      <TD> <B>年龄</B> </TD>
      <TD> <B>电话</B> </TD>
    </THEAD>
    <xsl:for-each select="student" order-by="name">
    <TR>
      <TD><B><xsl:value-of select="name"/></B></TD>
      <TD><xsl:value-of select="origin"/></TD>
      <TD><xsl:value-of select="age"/></TD>
      <TD><xsl:value-of select = "telephone"/></TD>
    </TR>
    </xsl:for-each>
  </TABLE>
</xsl:template>

</xsl:stylesheet>


//***.xml


<?xml version="1.0" encoding="GB2312" standalone = "no"?>
<?xml-stylesheet type="text/xsl" href="mystyle.xsl"?>
<roster>
  学生花名册
  <student>
    <name>李华</name>
    <origin>河北</origin>
    <age>15</age>
    <telephone>62875555</telephone>
  </student>
  <student>
    <name>张三</name>
    <origin>北京</origin>
    <age>14</age>
    <telephone>82873425</telephone>
  </student>
</roster>

[/code]


[此贴子已经被作者于2004-1-28 0:51:47编辑过]

--  作者:admin
--  发布时间:1/28/2004 2:12:00 PM

--  
XSLT里根本没有order-by属性呀。。要排序的话,用<xsl:sort select="name"/>
代码如下:
...
<xsl:for-each select="student">
<xsl:sort select="name"/>
    <TR>
      <TD><B><xsl:value-of select="name"/></B></TD>
      <TD><xsl:value-of select="origin"/></TD>
      <TD><xsl:value-of select="age"/></TD>
      <TD><xsl:value-of select = "telephone"/></TD>
    </TR>
    </xsl:for-each>
...
--  作者:Mushroom
--  发布时间:1/28/2004 3:26:00 PM

--  
不会吧。我的书上为什么是这么写的?还是2002。5写的呢
这些标准改来改去都不知道怎么回事了。
网上的XML手册在哪里的?中文的有没有的?
--  作者:admin
--  发布时间:1/28/2004 6:58:00 PM

--  
order-by是过时的、不推荐使用的属性。
如果非要用的话,必须要声明本XSLT的名称空间为http://www.w3.org/TR/WD-xsl
也就是把
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/TR/REC-html40">
改为
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns="http://www.w3.org/TR/REC-html40">


[此贴子已经被作者于2004-1-28 19:00:04编辑过]

--  作者:夜的黑
--  发布时间:9/29/2005 11:40:00 PM

--  
哦,原来是这样,我今天也遇到了这个问题。谢谢了!
--  作者:epe521
--  发布时间:10/14/2005 5:28:00 PM

--  
真的是高啊,高手如云,好地方
--  作者:matida
--  发布时间:11/14/2005 1:31:00 PM

--  
倒一个
--  作者:一条辉
--  发布时间:2/9/2006 3:47:00 PM

--  
这么说  名称空间还需要是实际存在有意义的url了么?
--  作者:truelove_
--  发布时间:3/11/2006 8:23:00 PM

--  
哎,中国的一些书籍太落后了,我这里有2005年第一版的书,书中也有说到order-by,我拷,妈的,中国的教育真他妈的误人子弟.
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms