2011-12-13 59 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;