无法在Javascript中使用xsl变量

时间:2015-09-17 17:50:51

标签: javascript xml xslt

我在xml文档Referring the link中使用嵌入式样式表。我的意图是从xml标签到XSLT获取文件名,并在Javascript的帮助下验证它。我试图将xsl变量值传递给javascript函数。我的提醒无效。我确信浏览器运行我的Javascript。

但我收到语法错误error image

我的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>

1 个答案:

答案 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>