javascript如何调用xslt的变量
如
- XML code
<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> <xsl:output method="xml" indent="yes"/> <xsl:template match="Component" name="Chart"> <xsl:param name="ID" select="'Test'"></xsl:param> <script > <![CDATA[ function loadXMLDoc(dname) { var txt = ""; if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.onreadystatechange = function () { if (xhttp.readyState == 4) { if (xhttp.status = 200) { txt = xhttp.responseXML; } } } xhttp.open("GET", dname, false); xhttp.send(""); //return xhttp.responseXML; return txt; } xml = loadXMLDoc("contraint1WithGridChartList.xml"); path = "//Component[@ID=$ID]//Parameter[@Type='XValue'] ]]> </script> </xsl:template></xsl:stylesheet>
JavaScript里面的$ID不起作用,请问如何传进去
[解决办法]
如果写上了 <!<CDATA[ 里面的东西就完全不被 替换了。你应该把这个函数前后切割然后组合。。。
但是非常不推荐这么做。有啥理由要这么变换生成JavaScripts代码么。。。
XSLT不过就是一套变换规则而已。。
[解决办法]
如楼上所说,你要传值的地方把CDATA去掉。
但是看你的写法似乎很多余,先XML+XSLT,然后再转成JS,继续读XML,那为什么不直接在XSLT里读XML呢?
XSLT支持document函数