我在xml文档Referring the link中使用嵌入式样式表。我的意图是从xml标签到XSLT获取文件名,并在Javascript的帮助下验证它。我试图将xsl变量值传递给javascript函数。我的提醒无效。我确信浏览器运行我的Javascript。
我的XML代码
<?xml version="1.0" standalone="no" ?>
<?xml-stylesheet type="text/xsl" href="#id(xyz)"?>
<file>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" id="xyz">
<xsl:template match="/">
<xsl:variable name="fName" select="filename" />
<xsl:text><xsl:value-of select="$fName"/></xsl:text>
<html>
<head>
<script type="text/javascript">
var fileName = "<xsl:value-of select="$fName"/>";
alert(fileName);
</script>
</head>
<body>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<filename>10052015</filename>
</file>
答案 0 :(得分:1)
据我所知,Internet Explorer从不支持引用嵌入式样式表。
Firefox和Chrome http://home.arcor.de/martin.honnen/xslt/test2015091801.xml适用于我,其源代码是
<?xml version="1.0" standalone="no" ?>
<?xml-stylesheet type="text/xsl" href="#xyz"?>
<!DOCTYPE file [
<!ATTLIST xsl:stylesheet
id ID #REQUIRED>
]>
<file>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" id="xyz" version="1.0">
<xsl:template match="/">
<xsl:variable name="fName" select="file/filename" />
<html>
<head>
<script type="text/javascript">
var fileName = "<xsl:value-of select="$fName"/>";
alert(fileName);
</script>
</head>
<body>
<h1>Test</h1>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<filename>10052015</filename>
</file>