2015-09-17 57 views
0

我正在使用嵌入式样式表将文件转换为xml文档Referring the link。我的意图是通过XSLT从xml标签获取文件名,并在Javascript的帮助下进行验证。我正在尝试将一个xsl变量值传递给一个javascript函数。我的警报不起作用。我确定浏览器运行我的Javascript。无法在Javascript中使用xsl变量

但我收到语法错误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

我觉得脚本标签是未解析。您可以简单地将该值注入到隐藏的div或输入中。 – dandavis

+0

哪个浏览器提供该错误消息? –

+0

MartinHonnen - Internet Explorer – Sam

回答

1

至于我记得,IE浏览器从来没有支持参考嵌入式样式表。

随着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> 
+0

@Matin Honnen - 谢谢 – Sam