当前位置: 代码迷 >> XML/SOAP >> 初学者提问xsl将xml转化为html的基础有关问题
  详细解决方案

初学者提问xsl将xml转化为html的基础有关问题

热度:336   发布时间:2012-02-24 16:30:39.0
菜鸟提问xsl将xml转化为html的基础问题
a.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="b.xsl" ?>
    
    <CATALOG>  
    
     <CD>  
    
      <TITLE>Empire Burlesque</TITLE>  
    
      <ARTIST>Bob Dylan</ARTIST>  
    
      <COUNTRY>USA</COUNTRY>  
    
      <COMPANY>Columbia</COMPANY>  
    
      <PRICE>10.90</PRICE>  
    
      <YEAR>1985</YEAR>  
    
     </CD>
</CATALOG> 

b.xsl文件:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     
    
    <xsl:template match="/">  
    
     <html>  
    
     <body>  
    
      <table border="2" bgcolor="yellow">  
    
       <tr>  
    
        <th>Title</th>  
    
        <th>Artist</th>  
    
       </tr>  
    
       <xsl:for-each select="CATALOG/CD">  
    
       <tr>  
    
        <td><xsl:value-of select="TITLE"/></td>  
    
        <td><xsl:value-of select="ARTIST"/></td>  
    
       </tr>  
    
       </xsl:for-each>  
    
      </table>  
    
     </body>  
    
     </html>  
    
    </xsl:template>  
    
    </xsl:stylesheet>  

在ie运行a.xml文件报错
文档的顶层无效。处理资源 'file:///C:/Users/admin/Desktop/新建文件夹/a.xml' 时出错。第 2 行,位置: 49 
<?xml-stylesheet type="text/xsl" href="b.xsl" ?>

请问这是为啥 是我xsl里写的不对么
a.xml和b.xsl已经放在了相同目录下
求解答

-----------------------------------------
问题我已经解决了 是xsl空间命名的关系
但新的问题又来了 
这是一种空间命名http://www.w3.org/1999/XSL/Transform
这又是一种空间命名http://www.w3.org/TR/WD-xsl
请问两者有什么区别 xsl空间命名规范总共有多少种 一般哪个好
千万别说两者各有千秋 要看情况 若真是这样劳驾在详细讲讲长处再哪
哪怕给个详细说明连接呢 我就结贴给分

------解决方案--------------------
从帖子上复制下来后发现里面包含一堆不可见的字符 &#x3000; 清理掉后就正常了。

XML code
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="b.xsl"?>
<CATALOG>
  <CD>
    <TITLE>Empire Burlesque</TITLE>
    <ARTIST>Bob Dylan</ARTIST>
    <COUNTRY>USA</COUNTRY>
    <COMPANY>Columbia</COMPANY>
    <PRICE>10.90</PRICE>
    <YEAR>1985</YEAR>
  </CD>
</CATALOG>

------解决方案--------------------

http://www.w3.org/1999/XSL/Transform 是 XSLT 标准的命名空间。

http://www.w3.org/TR/WD-xsl 是标准确立前的草案使用的命名空间, 应该废弃不用
  相关解决方案