2015-09-17 66 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