Pie*_*ing 1 javascript xslt html-entities
我对xslt,js和html实体有一个小问题,例如.在模板中:
<script type="text/javascript">
<xsl:value-of select="/some/node"/>
for (var i = 0; i < 5; i++) {
// ^^^ js error
}
</script>
<script type="text/javascript">
<xsl:value-of select="/some/node"/>
for (var i = 0; i < 5; i++) {
// ^ xslt error
}
</script>
<script type="text/javascript">
<xsl:value-of select="/some/node"/>
// <![CDATA[
for (var i = 0; i < 5; i++) {
// ^ becomes <
}
// ]]>
</script>
<script type="text/javascript">
<xsl:value-of select="/some/node"/>
for (var i = 0; i <xsl:value-of disable-output-escaping="yes" select="string('<')"/> 5; i++) {
// works of course
}
</script>
Run Code Online (Sandbox Code Playgroud)
有没有人知道我的问题可能来自哪里?我一直以为xslt处理器会在使用html输出方法时保留<script />元素的内容未转义...
我在OSX上运行libxslt2版本1.1.24,使用macportsports安装...
Pie*_*ing 11
好.长话短说,简答:
似乎对于一些libxslt版本,xslt处理器在使用html输出方法时保留了<script />元素的内容,而其他人没有 ...因此建议采用以下方法:
<script type="text/javascript">
<xsl:value-of select="/some/node"/>
<xsl:text disable-output-escaping="yes">
// ^ does the trick ...
for (var i = 0; i < 5; i++) {
// ^ works
}
</xsl:text>
</script>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11473 次 |
最近记录: |