2011-12-13 45 views
1

我试图用一个.xsl文件,以便将返回的XML文档的HTML表格链接到输出。我没有这方面的经验,这是我以前没有做过的事情,所以这可能只是一个简单的错误。尝试使用XSL HTML表格从XML

我已经为我的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样式表失败。”

+0

如果你正在尝试做一个XSLT转换,请您正在使用什么语言告诉我们。由于我使用C#最多,我会这样做:xsltTransform.Transform(xmlReader,transformedXml);但需要更多信息。 – ricardordz 2011-12-13 17:43:06

+0

@ricardordz我只是试图将XML数据转换成HTML表格 – ediblecode 2011-12-13 17:53:17

回答

0

变化:

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

到:

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

'关键' 为元素的属性

+0

我inproceedings原本,但它也不能工作。但由于 – ediblecode 2011-12-13 17:48:54

0

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

的选项似乎是:

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