XSLT不会呈现HTML标记

时间:2015-04-05 19:09:25

标签: html xml xslt

我是XML的初学者。我使用了这本书" XML:Visual Quickstart Guide"凯文霍华德戈德堡。我刚刚学会了如何使用XSLT转换XML文件。您将在我的代码中看到的所有内容都是我迄今为止所学到的关于XML和XSLT的内容。

我想制作一个包含XML数据的HTML表格,如下所示:

http://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog

但它只显示连续数据而不呈现HTML标记:

http://i.stack.imgur.com/QLECw.jpg

那为什么我的代码不起作用?

这是我的XML代码:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet content-type="application/xml" href="page2_xslt.xsl"?>
<favNumbers>
    <song>
        <title>Song 1</title> 
        <artist>Artist 1</artist>
    </song> 
    <song>
        <title>Song 2</title> 
        <artist>Artist 2</artist> 
    </song> 
    <song>
        <title>Song 3</title> 
        <artist>Artist 3</artist> 
    </song> 
    <song>
        <title>Song 4</title> 
        <artist>Artist 4</artist> 
    </song> 
</favNumbers>

这是我的XSLT代码:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" /> 
<xsl:template match="/">
<html> 
    <head> 
        <title>Favorite Songs</title> 
    </head> 
    <body> 
        <table> 
            <tr>
                <th>Favorite Songs</th> 
            </tr>
            <tr>
                <th>Title</th> 
                <th>Artist</th> 
            </tr> 
            <xsl:for-each select="favNumbers/song">
            <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>

现在变得非常令人沮丧。我错过了引用,逗号还是其他什么?或者它是更复杂的东西。我在许多网站上搜索过一个答案,但我找不到答案,可能是因为英语不是我的第一语言。所以请帮帮我。

谢谢:)

1 个答案:

答案 0 :(得分:1)

尝试在XML中更改此部分:

<?xml-stylesheet content-type="application/xml" href="page2_xslt.xsl"?>

为:

<?xml-stylesheet type="text/xsl" href="page2_xslt.xsl"?>