添加xsl样式表后无法显示xml文件

时间:2014-10-30 01:51:46

标签: html xml xslt

以前一切都很好。然后,当我将样式引用添加到我的xml时,我得到的是大多数浏览器中的空白页面。虽然在Firefox中我得到一个错误,上面写着:“XML解析错误:格式不正确”,它指向我的第二个tr标记的第16行。当我在Coda的预览工具中查看它时,我可以看到我的表头和h1,但没有数据显示出来。这是一个非常简单的文件。它的格式与w3c HERE上的示例完全相同。我已经尝试过这里的其他解决方案,但它们似乎都无法解决我的问题。我也尝试了各种标题组合,都没有运气。我非常感谢你的帮助。感谢

XML:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>

<FRIENDLIST>
    <FRIEND>
        <NAME>Speen</NAME>
        <AGE>23</AGE>
        <ADDRESS>430 I Street, SLC UT</ADDRESS>
        <PHONE>801-555-8796</PHONE>
        <EMAIL>xxx</EMAIL>
    </FRIEND>

    <FRIEND>
        <NAME>Wafiq</NAME>
        <AGE>25</AGE>
        <ADDRESS>xxx</ADDRESS>
        <PHONE>325-555-4232</PHONE>
        <EMAIL>xxx</EMAIL>
    </FRIEND>
</FRIENDLIST>

THE XSL:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
    <html>
        <body>
            <h1>My Friends</h1>
                <table border="1">
                    <tr bgcolor="grey">
                        <th style="text-align:center">Name</th>
                        <th style="text-align:center">Age</th>
                        <th style="text-align:center">Address</th>
                        <th style="text-align:center">Phone</th>
                        <th style="text-align:center">Email</th>
                    </tr>
                    <xsl:for-each select="friendlist/friend">
                    <tr> 
                        <td><xsl:value-of select="Name"/></td>
                        <td><xsl:value-of select="Age"/></td>
                        <td><xsl:value-of select="Address"/></td>
                        <td><xsl:value-of select="phone"/></td>
                        <td><xsl:value-of select="email"/></td> 
                    </tr>
                    </xsl:for-each>
                </table>            
        </body>
    </html>
</xsl:template>
</xsl:stylesheet>

2 个答案:

答案 0 :(得分:1)

在firefox中为我工作正常。

数据未显示,因为xpath区分大小写。更改xsl以使用正确的xpath选择器。

<xsl:for-each select="FRIENDLIST/FRIEND">
<tr> 
    <td><xsl:value-of select="NAME"/></td>
    <td><xsl:value-of select="AGE"/></td>
    <td><xsl:value-of select="ADDRESS"/></td>
    <td><xsl:value-of select="PHONE"/></td>
    <td><xsl:value-of select="EMAIL"/></td> 
</tr>
</xsl:for-each>

答案 1 :(得分:0)

看起来Google Chrome浏览器不允许查看本地xml文件。其他浏览器工作正常。

Bug Report