尝试链接使用XSL从XML输出HTML表

时间:2011-12-13 17:37:54

标签: html xml xslt

我正在尝试使用.xsl文件,以便它返回XML文档的HTML表格。我没有这方面的经验,这是我以前没有做过的事情,所以这可能只是一个简单的错误。

我的podcatalog.xsl

代码如下
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Tranform">

<xsl:template match="/">
  <html>
  <body>
  <h2>Pods Papers</h2>
  <table border="1">
    <tr bgcolor="#9ACD32">
      <th>Author</th>
      <th>Title</th>
      <th>Pages</th>
      <th>Year</th>
    </tr>
    <xsl:for-each select="pods-papers/inproceedings">
    <tr>
      <td><xsl:value-of select="author"/></td>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="pages"/></td>
      <td><xsl:value-of select="year"/></td>
    </tr>
    </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

podcatalog.xml可以是found here

我得到的错误是: “加载样式表时出错:解析XSLT样式表失败。”

2 个答案:

答案 0 :(得分:0)

更改:

<xsl:for-each select="pods-papers/inproceedings key">

为:

<xsl:for-each select="pods-papers/inproceedings">

'key'是元素的属性

答案 1 :(得分:0)

看起来你是以错误的方式定义实体(<!ENTITY Aring "&amp;#197;" >应该有&而不是&amp;),更严重的是,没有DTD。这似乎是一个长期的要求,我们应该能够做到这一点,但是......所以问题是你的XML文件有一个DOCTYPE声明,它只包含实体定义,而不是文档类型定义。

选项似乎是:

  1. 写一个DTD。有些工作,但可能对文档有用。
  2. 用字符本身或字符引用替换实体引用,例如&Ouml;由Ö或&#214;