以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  [求助]新学XML,碰到一个问题........  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=5515)


--  作者:泉韵星魂
--  发布时间:3/1/2004 5:25:00 PM

--  [求助]新学XML,碰到一个问题........
今天按照一个例程写了一个.XML文件,用IE打开时出现如下错误:
——————————————————————————————————————
无法显示 XML 页。
使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。
-------------------------------------------------------------------------------

该位置上不允许有空白。处理资源 'file:///D:/学习/XML/03/mystyle.xsl' 时出错。第 1 行,位置: 3

<? xml  version="1.0" encoding="gb2312"?>
--^
——————————————————————————————————————

mystyle.xsl和student.xml在同一目录下.
源码如下:

student.xml

<?xml version="1.0" encoding="gb2312"?>
<?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>


mystyle.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="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>


--  作者:admin
--  发布时间:3/1/2004 11:25:00 PM

--  
mystyle.xsl
<? xml  version="1.0" encoding="gb2312"?>
<? 和 xml之间的空格去掉
<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>


--  作者:泉韵星魂
--  发布时间:3/2/2004 8:51:00 AM

--  
改过之后还是有问题:


鄀誰>f:y XML u?0
O(u XSL 7h_h堗e誰錱 w XML 搹eQ0 鲖鬴ck曪?qTUS鸔 7R癳 c當 b錘T蛻諎0

--------------------------------------------------------------------------------

:\@b梽v^\'` 'version'0


--  作者:泉韵星魂
--  发布时间:3/2/2004 8:56:00 AM

--  
我又参考了其他程序代码,把
<xsl:stylesheet 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">

问题就解决了,在IE中可以正常显示了.
这应该是命名空间的事吧??
请教一下,为什么这样改就可以了??难道XML在编译时要去定位到http://www.w3.org/TR/WD-xsl这里吗???



--  作者:泉韵星魂
--  发布时间:3/2/2004 9:13:00 AM

--  
还有就是这个论坛会自动加分号................
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl";
        xmlns="http://www.w3.org/TR/REC-html40";>这里边的分号是论坛自己加上的,我的源代码里没有......
--  作者:admin
--  发布时间:3/19/2004 8:26:00 PM

--  不会去http://www.w3.org/TR/WD-xsl找他的Schema的
只是通过http://www.w3.org/TR/WD-xsl和http://www.w3.org/1999/XSL/Transform来区分使用哪个版本的解析器。
Nmespace URI之作为标识符。

以下是引用泉韵星魂在2004-3-2 8:56:04的发言:
我又参考了其他程序代码,把
<xsl:stylesheet 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">

问题就解决了,在IE中可以正常显示了.
这应该是命名空间的事吧??
请教一下,为什么这样改就可以了??难道XML在编译时要去定位到http://www.w3.org/TR/WD-xsl这里吗???





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