将XSL字符串传递给Javascript

时间:2012-04-24 19:54:39

标签: javascript xslt

我正在尝试将字符串从XSL传递给Javascript。我能够传递整数但它似乎不接受字符串。以下是我的代码的基本结构。如果我从“测试1”中删除“测试”,我会得到编号为1的警告框。但是一旦内部有文本,警报框就不会出现。

XML:

<TEST>
  <TITLE>Test 1</TITLE>
<TEST>

<TEST>
  <TITLE>Test 2</TITLE>
<TEST>

XSL:

<xsl:for-each select="//TEST">
<xsl:call-template name="TEST_TEMPLATE"/>
</xsl:for-each>

...

<xsl:template name="TEST_TEMPLATE">

<script type="text/javascript">
<![CDATA[var title = ]]><xsl:value-of select="./TITLE" /><![CDATA[;

alert(title);]]>
</script>

非常感谢您的帮助。

谢谢!

2 个答案:

答案 0 :(得分:2)

您不是“将字符串从XSL传递到Javascript”。您的XSLT代码正在生成HTML,其中一部分恰好是脚本元素。很容易看出您生成的脚本元素包含文本:

var title = Test 1;

在执行时显然没有任何用处。

答案 1 :(得分:1)

你需要在标题周围引用。您刚刚输出的模板的字符串值,但它必须在引号中是有效的javascript。我认为这样可行:

<xsl:template name="TEST_TEMPLATE">

<script type="text/javascript">
<![CDATA[var title = "]]><xsl:value-of select="./TITLE" /><![CDATA[";

alert(title);]]>
</script>