在XSL中包含带有大括号{}的内联JavaScript
Include Inline JavaScript with Curly Brackets {} in XSL
我正在尝试通过XSL文件将XML转换为HTML。不幸的是,它不允许我使用JavaScript大括号{}。下面是一个简单的例子,但是我的实际代码要大得多。
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>
<xsl:output media-type="text/html; charset=UTF-8" encoding="UTF-8"/>
<xsl:template match='/'>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Page Title</title>
</head>
<body onload="javascript: if(confirm('Are you sure?')) { return true;} else { return false;}">
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Visual Studio给出以下错误:
Expected token '}', found 'true'. ...firm('Are you sure?')) { return -->true<-- ;} else { return false;}
是否有办法在XSL中包含内联JavaScript ?我知道您可以使用<![CDATA[ ]]>
来转义Javascript块。但是如何转义内联JavaScript呢?我的实际代码太大,无法将所有内联JavaScript重写为脚本块。
文本结果元素属性中的花括号用于"属性值模板",包含XPath表达式。因此,如果您想生成包含卷发的属性,您需要通过将它们加倍来转义它们:
<body onload="javascript: if(confirm('Are you sure?')) {{ return true;}} else {{ return false;}}">
然而,在onXXX属性中包含大块的Javascript可能是最好避免的:相反,只包含一个函数调用在<script>
中定义的代码。
试试这个,它应该不需要转义:
<body>
<xsl:attribute name="onload">
javascript: if(confirm('Are you sure?')) { return true;} else { return false;}
</xsl:attribute>
</body>
相关文章:
- 将文件路径从XSL传递到JavaScript函数
- 如何将Javascript数学函数与XSL一起使用
- 如何使用javascript将xsl样式应用于html中的嵌入式xml
- 在xsl中调用具有某些参数的javascript函数
- 以XSL输出Javascript文档.write
- 无法从 XSL 运行 JavaScript 函数
- 在 XSL 文件中嵌入 Javascript 文件
- 无法访问 JavaScript 中 xsl 中存在的 Html 标记
- 使用 JavaScript 修改加载的 XML(通过 XSL 显示在浏览器 (Chrome) 中)
- 如何将 xsl 变量作为参数传递给脚本标记中的 javascript 函数
- Javascript 来比较两个 XSL 值
- 将 Javascript 应用于 XSL
- 将 javascript 变量放入 xsl 属性中
- 使用xsl和javascript显示xml文件中计数的关键字的总和
- 在XSL中插入javascript
- XSL FO如何处理javascript脚本
- Javascript能破坏XSL转换吗?XSL 1.0
- 从XSL文件调用Javascript时出错
- 编辑器的javascript, xsl, XHTML和css,除了aptana或xcode
- 在Firefox中工作的Javascript/XSL在Safari中不起作用