我有一个XML文件,可以从HTML文件外部读取数据。
XML文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Test.xsl"?>
<!-- Edited by XMLSpy -->
<catalog>
<cd>
<title>Empire Burlesque</title>
<external><![CDATA[2F434A1.htm]]></external>
</cd>
<cd>
<title>Hide your heart</title>
<external><![CDATA[2F434A1.htm]]></external>
</cd>
</catalog>
XSLT文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>External</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="external"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
要打印的数据在html文件中可用,当我们打开这个xml时,我们得到html文件的名称而不是数据。
请向我们提供建议如何在XSLT中引用数据显示xml。
答案 0 :(得分:1)
您可以使用iframe
例如
<tr>
<td><xsl:value-of select="title"/></td>
<td><iframe src="{external}"/></td>
</tr>
当然,将呈现和包含HTML文档的任务委托给显示XSLT创建的HTML的浏览器。但是XSLT没有办法包含HTML文档,除非你知道它是格式良好的XHTML,在这种情况下你可以使用
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:copy-of select="document(external)//body/node()"/></td>
</tr>