0
所以我试图将一个XSL变量传递给一个js函数,然后用一个字符串连接它,但它不起作用。无法用JavaScript字符串连接XSL变量?
这是我的尝试:
<msxsl:script language="JavaScript" implements-prefix="js">
<![CDATA[
function printString1(str)
{
str2 = 'hello' + str;
return str2;
}
]]>
</msxsl:script>
这是我如何调用该方法:
<xsl:value-of select="js:printString1(s:somepath/@name)"/>
凡的名字是 “杰克”。
在这种情况下,输出是“你好”,没有别的。它不应该是“helloJake”吗?
但如果我尝试:
<msxsl:script language="JavaScript" implements-prefix="js">
<![CDATA[
function printString1(str)
{
return str;
}
]]>
</msxsl:script>
我得到 “杰克” 作为输出。
我在这里错过了什么?
编辑:
这是XML文件的外观:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="MeasDataStylesheetWithScript2.xsl"?>
<measCollecFile
xmlns="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="measCollec">
<fileHeader vendorName="samplename">
</fileHeader>
</measCollecFile>
这是XSL文件看看如何:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:s="http://www.3gpp.org/ftp/specs/archive/32_series/32.435#measCollec"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:js="urn:custom-javascript"
exclude-result-prefixes="s msxsl js">
<msxsl:script language="javascript" implements-prefix="js">
<![CDATA[
function printString1(str)
{
var str2 = 'hello' + str;
return str2;
}
]]>
</msxsl:script>
<xsl:template match="/">
<html>
<body>
<xsl:value-of select="js:printString1(s:measCollecFile/s:fileHeader/@vendorName)"/>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
只是尝试,它不工作。你还有其他建议吗? – Simon
@Simon,我更新了我的答案。 –
我已经包含了源文件的外观。虽然你正确地传递像'jake'这样的字符串会起作用,但从xml文件中提取字符串不会。 – Simon