CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  XML/SOAP

看看下面的三段代码student.xml, hmc.dtd,mystyle1xsl为什么不能正确显示正确结果结果

楼主shinechar1(我是一棵菠菜)2002-07-25 08:09:08 在 Web 开发 / XML/SOAP 提问

student.xml:  
  <?xml   version="1.0"   encoding="GB2312"   standalone="yes"?>    
   
  <?xml-stylesheet   type="text/xsl"   href="mystyle1.xsl"?>  
   
  <roster>  
   
      <student>  
          <name>lihua</name>  
          <on>hebei</on>  
          <age>15</age>  
          <telephone>62875555</telephone>  
      </student>  
      <student>  
          <name>zhangsan</name>  
          <on>beijing</on>  
          <age>14</age>  
          <telephone>82873425</telephone>  
      </student>  
  </roster>  
  ------------------------------------------------------------------------  
  mystyle1.xsl  
  <?xml   version="1.0"   encoding="GB2312"   ?>    
  <xsl:stylesheet   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   xmlns="http://www.w3.org/TR/REC-html40">    
  <xsl:template>    
  <xsl:apply-templates/>    
  </xsl:template>    
   
  <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="on"/></TD>    
              <TD><xsl:value-of   select="age"/></TD>    
              <TD><xsl:value-of   select   =   "telephone"/></TD>    
          </TR>  
          </xsl:for-each>  
  </TABLE>    
  </xsl:template>    
  </xsl:stylesheet>  
  --------------------------------------------------------------------------  
  hmc.dtd  
  <?xml   version="1.0"   encoding="GB2312"?>  
   
  <!ELEMENT   roster   (student)*>  
  <!ELEMENT   student   (name,on,age,telephone)>  
  <!ELEMENT   name     (#PCDATA)>  
  <!ELEMENT   on         (#PCDATA)>  
  <!ELEMENT   telephone   (#PCDATA)>  
  <!ELEMENT   age       (#PCDATA)> 问题点数:40、回复次数:8Top

1 楼dqbaiying(小白)回复于 2002-07-25 08:17:17 得分 0

xml文件中没有引用hmc.dtdTop

2 楼saucer(思归)回复于 2002-07-25 08:20:35 得分 15

1.   remove   the   first   template  
  2.   XSLT   does   not   support   order-by   for   xsl:for-each,   use   xsl:sort   instead  
   
  <?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">    
                      <xsl:sort   select="name"   />  
          <TR>    
              <TD><B><xsl:value-of   select="name"/></B></TD>    
              <TD><xsl:value-of   select="on"/></TD>    
              <TD><xsl:value-of   select="age"/></TD>    
              <TD><xsl:value-of   select   =   "telephone"/></TD>    
          </TR>  
          </xsl:for-each>  
  </TABLE>    
  </xsl:template>    
  </xsl:stylesheet>Top

3 楼shinechar1(我是一棵菠菜)回复于 2002-07-25 08:34:41 得分 0

我把order-by改成sort,还是不好使Top

4 楼shinechar1(我是一棵菠菜)回复于 2002-07-25 08:41:03 得分 0

还是不好用,用ie浏览出现乱码,请指教Top

5 楼bigshaw()回复于 2002-07-25 09:34:13 得分 0

saucer(思归)写的代码是对的。  
  你把代码重新写一次,不要复制,肯定可以的。  
  Top

6 楼hax(海曦)回复于 2002-07-25 10:30:29 得分 5

用ie   6。Top

7 楼saucer(思归)回复于 2002-07-25 12:19:43 得分 20

1.   use   the   xslt   I   provided   above  
  2.   upgrade   to   ie6   or   install   msxml3   in   "replace"   modeTop

8 楼shinechar1(我是一棵菠菜)回复于 2002-07-25 12:33:26 得分 0

我用的是ie6,曾经有一个类似的代码运行后能正确显示结果,但这个还是不能,by   the   way,where   to   download   msxml3,   ms?Top

9 楼shinechar1(我是一棵菠菜)回复于 2002-07-25 13:18:57 得分 0

终于好了,  
  将<xsl:stylesheet   version="1.0"   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"   xmlns="http://www.w3.org/TR/REC-html40">    
  该成  
  <xsl:stylesheet   xmlns:xsl="http://www.w3.org/TR/WD-xsl"   xmlns="http://www.w3.org/TR/REC-html40">    
  就可以了,看来是namespace的问题;  
  多谢大家!!Top

相关问题

  • 如何从xml得到dtd?
  • xml服务器验证DTd的问题
  • 那个dtd/xml editor对xml-dr支持较好?
  • Java 和XML 编程时,XML的DTD 放到哪?
  • (散分了)大虾们看看:读xml的bean中,如果xml不符合dtd
  • dtd和xml schemas哪个用的多一点
  • 解析xml文档需要解析它的schema/dtd吗?
  • 采用XML时候大家用DTD还是SCHEMA。
  • 推荐一本XML的书(inlcude schema, not dtd),进来有分
  • 推荐一本XML的书(inlcude schema, not dtd),进来有分

关键词

  • 学生
  • 学生花名册

得分解答快速导航

  • 帖主:shinechar1
  • saucer
  • hax
  • saucer

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo