以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  为什么不能显示我想要的页面呢  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=115)


--  作者:yehuotaizi
--  发布时间:11/6/2003 9:23:00 PM

--  为什么不能显示我想要的页面呢
我是个xml的初学者
我编了一个书上的例子但是就是不会显示书上的结果
高手帮帮忙
<!-- car.xml -->
<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet href="car.xsl" type="text/xsl"?>
<cars>
<car>
 <brandname>甲车</brandname>
 <dealership>a厂</dealership>
 <price>500</price>
 <amount>3</amount>
</car>
<car>
 <brandname>乙车</brandname>
 <dealership>b厂</dealership>
 <price>200</price>
 <mount>7</mount>
</car>
<car>
 <brandname>丙车</brandname>
 <dealership>c厂</dealership>
 <price>300</price>
 <mount>4</mount>
</car>
</cars>

<!-- car.xsl -->
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet
 version="1.0"
 xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<HTML>
<HEAD></HEAD>
<BODY>
 <TABLE border="1">
 <TR>
    <TH>车名</TH>
 <TH>经销商</TH>
 <TH>销价</TH>
 <TH>数量</TH>
 </TR>
 <xsl:for-each select="cars/car">
 <TR>
 <xsl:apply-templates />
 </TR>
 </xsl:for-each>
 </TABLE>
</BODY>
</HTML>
</xsl:template>

<xsl:template match="brandname" >
<TD style="color:green"><xsl:value-of select="brandname" /></TD>
</xsl:template>

<xsl:template match="dealership" >
<TD><xsl:value-of  select="dealership"/></TD>
</xsl:template>

<xsl:template match="price" >
<TD ><xsl:value-of  select="price"/></TD>
</xsl:template>

<xsl:template match="amount" >
<TD><xsl:value-of  select="amount"/></TD>
</xsl:template>


</xsl:stylesheet>


--  作者:admin
--  发布时间:11/6/2003 11:46:00 PM

--  
1).xml和.xsl文件中,从第一个字符开始,必须是XML声明,即<?xml version="1.0" encoding="gb2312" ?>
不能在前面有空格或换行.更不能把<!--  -->写在XML声明的前面
2)car.xsl中的这句xmlns:xsl="http://www.w3.org/TR/WD-xsl";>
去掉倒数第二的字符(分号)
3)car.xsl中这句xmlns:xsl="..."改为xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4)把car.xsl中的所有<xsl:value-of select="......."/>改为<xsl:value-of select="text()" />

完整的car.xsl如下:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<HEAD></HEAD>
<BODY>
  <TABLE border="1">
  <TR>
    <TH>车名</TH>
  <TH>经销商</TH>
  <TH>销价</TH>
  <TH>数量</TH>
  </TR>
  <xsl:for-each select="cars/car">
  <TR>
   <xsl:apply-templates/>
  </TR>
  </xsl:for-each>
  </TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="brandname" >
<TD style="color:green"><xsl:value-of select="text()" /></TD>
</xsl:template>
<xsl:template match="dealership" >
<TD><xsl:value-of  select="text()"/></TD>
</xsl:template>
<xsl:template match="price" >
<TD ><xsl:value-of  select="text()"/></TD>
</xsl:template>
<xsl:template match="amount" >
<TD><xsl:value-of  select="text()"/></TD>
</xsl:template>
</xsl:stylesheet>


BTW:是那本书啊//错误这么多..

[此贴子已经被作者于2003-11-7 0:25:31编辑过]

--  作者:yehuotaizi
--  发布时间:11/7/2003 12:03:00 PM

--  
我照你说的改了不行
--  作者:yehuotaizi
--  发布时间:11/7/2003 12:05:00 PM

--  
注释是我在法帖前添上去的

--  作者:admin
--  发布时间:11/7/2003 1:50:00 PM

--  
在我这里是好的呀。。装个MSXML 4 试试看
--  作者:KiDz
--  发布时间:11/9/2003 6:00:00 PM

--  
请楼主仔细看看,是不是在xsl的xmlns:xsl这行最后加入了一个多余的分号啊?
--  作者:KiDz
--  发布时间:11/9/2003 6:04:00 PM

--  
还有一个问题:

楼主是不是把注释放在这段程序的第一行啊?

这样话,肯定是不行的,XML开头的第一行只能是xml的声明,否则会出错。


--  作者:KiDz
--  发布时间:11/10/2003

--  
以下是引用admin在2003-11-7 13:50:51的发言:
在我这里是好的呀。。装个MSXML&nbsp;4&nbsp;试试看

坛主,我测试过了,他的设计也只能显示表格的Title,没有显示具体的内容


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms