使用浏览器转换XML文档

时间:2012-12-06 18:32:27

标签: html xml xslt simplexml

我有XML数据,我正在尝试使用XSL格式化数据。我正在学习一些教程。在Internet Explorer中预览XML时,数据在一行上;在使用Firefox进行预览时,我收到错误消息:

  

加载样式表时出错:解析XSLT样式表失败。

这里是XML:

 <?xml version= "1.0"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
    <countries>
        <country> 
            <countryname>United States</countryname>
        </country>

        <country>
            <countryname>United Kingdom</countryname>
        </country>

        <country>
            <countryname>Deutschland</countryname>
        </country>

        <country>
            <countryname>Osterreich</countryname>
        </country>

        <country>
            <countryname>Espana</countryname>
        </country>

        <country>
            <countryname>France</countryname>
        </country>

        <country>
            <countryname>Italia</countryname>
        </country>

        <country>
            <countryname>China</countryname>
        </country>

        <country>
            <countryname>Hong Kong</countryname>
        </country>

        <country>
            <countryname>Japan</countryname>
        </country>

        <country>
            <countryname>Singapore</countryname>
        </country>

        <country>
            <countryname>Taiwan</countryname>
        </country>

        <country>
            <countryname>Malaysia</countryname>
        </country>
    </countries>

这是XSL:

 <?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/countries">
<html>
<body>

    <xsl:for-each select="country"

    <xsl:value-of select="countryname"/><br/>

    </xsl:for-each>

</body>
</html>


</xsl:template>

</xsl:stylsheet>

为什么浏览器不显示XSL模板描述的XML文档?

谢谢!

1 个答案:

答案 0 :(得分:2)

缺少括号

<xsl:for-each select="country"必须为<xsl:for-each select="country">

请注意结束>

额外空间

此外,您可能希望删除文档第一行的前导空格(如果存在):

 <?xml version="1.0" encoding="ISO-8859-1"?>

VS

<?xml version="1.0" encoding="ISO-8859-1"?>

错字

</xsl:stylsheet>必须为</xsl:stylesheet>

进行这些更改后,会显示国家/地区列表。

调试

考虑使用具有语法突出显示功能的文本编辑器编辑XML和XSL,并在视觉上提醒您这些错误。

Syntax Highlighted Example