首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在xslt,javascript中实现未转义的html实体?

如何在xslt,javascript中实现未转义的html实体?
EN

Stack Overflow用户
提问于 2018-07-25 00:40:24
回答 2查看 0关注 0票数 0

对于XSLT、js和html实体,出现了以下问题:

代码语言:txt
复制
<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>

有什么办法可以解决吗?

EN

回答 2

Stack Overflow用户

发布于 2018-07-25 08:47:00

这样试试:

代码语言:txt
复制
The html output method should not perform escaping for the content of the script and style elements.
For example, a literal result element written in the stylesheet as
    <script>if (a &lt; b) foo()</script>
or
    <script><![CDATA[if (a < b) foo()]]></script>
should be output as
    <script>if (a < b) foo()</script>

如果XSLT处理程序做的不是这样,那么就可能是一个bug。

票数 0
EN

Stack Overflow用户

发布于 2018-07-25 10:08:56

试试下面的代码:

代码语言:txt
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档