XSL 无法用 Firefox 解析
XSL cannot parse with Firefox
当我在 Firefox 中 运行 xml 文件时,我得到: "Error loading stylesheet: Parsing an XSLT stylesheet failed." 而当我在 Chrome 中 运行 时,我得到空白页。
这是 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="g.xsl"?>
<forma>
<unos>
<ime>Marija</ime>
<prezime>Rahman</prezime>
<ulica>Glasinacka 8</ulica>
<postBroj>11000</postBroj>
<grad>Beograd</grad>
<drzava>Srbija</drzava>
<mobilni>0621912773</mobilni>
<email>marijarahman@gmail.com</email>
<korisnickoIme>maja</korisnickoIme>
<lozinka>maja123</lozinka>
</unos>
</forma>
这是 XSLT 文件:
<?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>
<table border="1">
<tr>
<th>Ime</th>
<th>Grad</th>
</tr>
<xsl:for-each select="forma/unos">
<tr>
<th>
<xsl:value select="ime"/>
</th>
<th>
<xsl:value select="grad"/>
</th>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSLT 中没有 xsl:value
。该指令称为 xsl:value-of
.
样式表
<?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>
<table border="1">
<tr>
<th>Ime</th>
<th>Grad</th>
</tr>
<xsl:for-each select="forma/unos">
<tr>
<th>
<xsl:value-of select="ime"/>
</th>
<th>
<xsl:value-of select="grad"/>
</th>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
HTML输出
<html>
<body>
<table border="1">
<tr>
<th>Ime</th>
<th>Grad</th>
</tr>
<tr>
<th>Marija</th>
<th>Beograd</th>
</tr>
</table>
</body>
</html>
更笼统地说,在浏览器中调试 转换并没有多大用处,因为通常无法找出问题所在(如您所见).使用像 Oxygen 这样的 IDE,或者像 Saxon 9.5 这样的简单命令行处理器。
如果您有 运行 带有命令行 Saxon 的样式表,它会立即告诉您哪里出了问题。这是您在 Oxygen 中看到的错误消息:
E [Saxon6.5.5] Unknown XSLT element: value
比
更有帮助
Error loading stylesheet: Parsing an XSLT stylesheet failed.
来自 Internet Explorer,或者没有来自 Chrome。
就是说,一旦您确定您的样式表是正确的,运行宁浏览器中的转换可能是个好主意,因为这样转换在客户端完成。
当我在 Firefox 中 运行 xml 文件时,我得到: "Error loading stylesheet: Parsing an XSLT stylesheet failed." 而当我在 Chrome 中 运行 时,我得到空白页。 这是 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="g.xsl"?>
<forma>
<unos>
<ime>Marija</ime>
<prezime>Rahman</prezime>
<ulica>Glasinacka 8</ulica>
<postBroj>11000</postBroj>
<grad>Beograd</grad>
<drzava>Srbija</drzava>
<mobilni>0621912773</mobilni>
<email>marijarahman@gmail.com</email>
<korisnickoIme>maja</korisnickoIme>
<lozinka>maja123</lozinka>
</unos>
</forma>
这是 XSLT 文件:
<?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>
<table border="1">
<tr>
<th>Ime</th>
<th>Grad</th>
</tr>
<xsl:for-each select="forma/unos">
<tr>
<th>
<xsl:value select="ime"/>
</th>
<th>
<xsl:value select="grad"/>
</th>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
XSLT 中没有 xsl:value
。该指令称为 xsl:value-of
.
样式表
<?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>
<table border="1">
<tr>
<th>Ime</th>
<th>Grad</th>
</tr>
<xsl:for-each select="forma/unos">
<tr>
<th>
<xsl:value-of select="ime"/>
</th>
<th>
<xsl:value-of select="grad"/>
</th>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
HTML输出
<html>
<body>
<table border="1">
<tr>
<th>Ime</th>
<th>Grad</th>
</tr>
<tr>
<th>Marija</th>
<th>Beograd</th>
</tr>
</table>
</body>
</html>
更笼统地说,在浏览器中调试 转换并没有多大用处,因为通常无法找出问题所在(如您所见).使用像 Oxygen 这样的 IDE,或者像 Saxon 9.5 这样的简单命令行处理器。
如果您有 运行 带有命令行 Saxon 的样式表,它会立即告诉您哪里出了问题。这是您在 Oxygen 中看到的错误消息:
E [Saxon6.5.5] Unknown XSLT element: value
比
更有帮助Error loading stylesheet: Parsing an XSLT stylesheet failed.
来自 Internet Explorer,或者没有来自 Chrome。
就是说,一旦您确定您的样式表是正确的,运行宁浏览器中的转换可能是个好主意,因为这样转换在客户端完成。