我正在尝试将我的XSL链接到我的XML但是当我在Chrome或其他网络浏览器中加载XML页面时,我得到一个空白页。
我不确定它究竟出了什么问题。
下面是我的XML
<?xml-stylesheet type="text/xsl" href="vaults.xsl"?>
<vaults xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="vaults.xsd">
<vault>
<vaultname>Los Angeles Vault </vaultname>
<state>California</state>
<location>Los Angeles (Cathedral)</location>
<description>The Vault-Tec demonstration vault. It was not part of the experiment, and was the Master's vault under the Cathedral. </description>
<fate> </fate>
<appearance>Fallout</appearance>
</vault>
</vaults>
以下是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>
<h2>Vaults</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">vault</th>
</tr>
<xsl:for-each select="vaults/vault">
<tr>
<td><xsl:value-of select="vaultname" /></td>
<td><xsl:value-of select="state" /></td>
<td><xsl:value-of select="location" /></td>
<td><xsl:value-of select="description" /></td>
<td><xsl:value-of select="fate" /></td>
<td><xsl:value-of select="appearance" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
然而,当我在Chrome或其他网络浏览器中加载XML页面时,我会得到一个空白页面。
如果您从Chrome中的本地磁盘you will get a blank page加载它,在Internet Explorer中也是如此。这是出于安全原因。
我测试了你的XML和XSLT,在本地存储了这两个文件,并在Firefox中打开了它,并且只是工作了#34;:
注意,我建议您使样式表更容易阅读和维护。即,沿着这些方向的东西(通常,使用具有匹配模板的xsl:apply-templates
更容易维护并且更好地防止输入中的更改):
<?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>
<h2>Vaults</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">vault</th>
</tr>
<xsl:apply-templates select="vaults/vault" />
</table>
</body>
</html>
</xsl:template>
<xsl:template match="vault">
<tr>
<xsl:apply-templates select="*" />
</tr>
</xsl:template>
<xsl:template match="*[parent::vault]">
<td><xsl:value-of select="." /></td>
</xsl:template>
</xsl:stylesheet>