我有一个 XML 文件(动态创建的)和一个 XSL 样式表;如果我在 Firefox 中打开 XML 文件,我会得到一个很好的输出表。
但是,我想在 HTML 页面中呈现此数据。我试过使用:
HTML 文件:
<html>
<body>
<xml src="test_data.xml">
</xml>
</body>
</html>
但是我无法渲染任何东西。我的 XML 文件和 XSL 文件都在同一个目录中。
我试过删除 <html>
和 <body>
从我的 XSL 输出,但仍然没有结果。
我在网上了解到,IE 和 Firefox 的某些方法有所不同;如何在 Firefox 的 HTML 页面中呈现 XML 文件?
XML 文件(test_data.xml):
<?xml-stylesheet type="text/xsl" href="report_proteins.xsl"?>
<group_list>
<protein_group>
<protein name="A_1" />
<protein name="A_2" />
</protein_group>
<protein_group>
<protein name="B_1" />
</protein_group>
<protein_group>
<protein name="C_1" />
<protein name="C_2" />
<protein name="C_3" />
</protein_group>
</group_list>
XSL 文件(report_proteins.xsl):
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>MAP proteins</h2>
<table border="0">
<tr>
<th bgcolor="#E7FFCC">Group number</th>
<th bgcolor="#D2FBFF">Proteins</th>
</tr>
<xsl:for-each select="group_list/protein_group">
<tr>
<td>
<xsl:number />
</td>
<td>
<xsl:for-each select="protein">
<xsl:value-of select="@name"/><xsl:text> </xsl:text>
</xsl:for-each>
</td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
最佳答案
HTML 中没有这样的xml
节点,所以这就是它不起作用的原因。您根本不需要 HTML 文件。您的 XSLT 工作表生成一个完整的 XHTML 文档,如果您在浏览器中打开 XML 查找,浏览器应该能够按原样呈现它。
您应该将 XHTML 命名空间添加到 XSLT 样式表。
关于html - 在 HTML 中嵌入 XML(兼容 Firefox),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7816500/