我给你一些上下文来解释我的问题:
我有一个 xml 文件和一个 xsl 文件,如下所示:
数据.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="overview.xsl"?>
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
</catalog>
和overview.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="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<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>
当我在 Firefox 中打开 data.xml 时,一切都很好,并且可以按我的意愿工作。现在,我想要我的 CD 目录有 2 个视图。一个视图是“概述”,一个是“扩展”,这意味着,我需要 2 个不同的 xsl。
我试过这个:
视图1.xml:
<?xml-stylesheet type="text/xsl" href="overview.xsl"?>
<xml-file href="data.xml" />
视图2.xml:
<?xml-stylesheet type="text/xsl" href="extended.xsl"?>
<xml-file href="data.xml" />
我删除了这一行:
<?xml-stylesheet type="text/xsl" href="overview.xsl"?>
来自数据.xml
我希望能够在阅读 view1.xml 时使用 overview.xsl 阅读我的 CD 目录,并在阅读 view2.xml 时阅读相同的 CD 目录但使用extended.xsl 的格式。
但它只是部分起作用。不知何故,我的overview.xsl 再也找不到节点了。我获得了一个标题为 ab html table 但其中没有数据的网页。我想,我需要改变:
<xsl:for-each select="catalog/cd">
到别的东西。你有什么主意吗?
作为信息,我试图在不使用 javascript 加载另一个 xsl 文件的情况下执行此操作。
谢谢你的帮助。朱丽叶