javascript - xslt、javascript 和未转义的 html 实体

标签 javascript xslt html-entities

我对 xslt、js 和 html 实体有一个小问题,例如。在模板中:

<script type="text/javascript">
    <xsl:value-of select="/some/node"/>
    for (var i = 0; i &lt; 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 &lt;
    }
    // ]]>
</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('&lt;')"/> 5; i++) {
        // works of course
    }
</script>

有谁知道我的问题可能来自哪里?我一直认为 xslt 处理器在使用 html 输出方法时会保留 <script/> 元素的内容未转义 ...

我在使用 macportsports 安装的 OSX 上运行 libxslt2 版本 1.1.24 ...

最佳答案

好的。长话短说:

似乎对于某些 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>

关于javascript - xslt、javascript 和未转义的 html 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/435005/

相关文章:

ruby - 如何让 Nokogiri 不转换为空间

php - 如何防止 DOMXPath 扩展 HTML 实体?

javascript - Ember 计算等于不适用于 ember-mirage

javascript - 如何在 mvc 4 中将 javascript 变量放入 View 中?

javascript - 如何将 javascript 值传递给 php?

xml - 使用 XSL 合并和排序多个 XML 文件

javascript - Xsl TransformToDocument 不能在 Chrome 浏览器中工作,但可以在 Firefox 中工作

XSLT 键()查找

javascript - PHP 邮件表单不会将输入发送到电子邮件

ruby-on-rails - 页面内容中 html 实体的 Rspec 测试