xslt,javascript和未转义的html实体 [英] xslt, javascript and unescaped html entities
问题描述
我对xslt,js和html实体有一个小问题,例如。在模板中:
i have a tiny little problem with xslt, js and html entities, eg. within a template:
<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>
有没有人知道我的问题可能来自哪里?我一直以为xslt处理器会留下< script />的内容。元素在使用html输出方法时未转义...
does anyone have an idea where my problem could come from? i always thought the xslt processor would leave the content of a <script/> element unescaped when using the html output method ...
我在OSX上运行libxslt2版本1.1.24,它是使用macportsports安装的......
i run libxslt2 version 1.1.24 on OSX which was installed using macportsports ...
推荐答案
好的。很长的故事,简短的回答:
ok. long story, short answer:
似乎一些libxslt版本 xslt处理器留下未转义的< script />元素的内容当使用html输出法时,与其他人一起
不 ...因此建议采用以下方法:
it seems that with some libxslt versions the xslt processor leaves the content of a <script/> element unescaped when using the html output method, with others not ... therefore the following is recommended:
<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>
这篇关于xslt,javascript和未转义的html实体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!