25

我有这种困难的情况,我需要在另一个 CDATA 标记中使用 CDATA 标记。这种情况很容易解释。

我有以下事情:

<edit>
<![CDATA[
<script type="text/javascript">
<![CDATA[
    window.onload = function() 
    {
        document.getElementById('block').onclick = function() 
        {
            this.onclick = '';
            this.value = '{LA_SEND_CONFIRM}';
            this.className = this.className.replace('button1','');
            document.getElementById('replacement').value = '{LA_BLOCK_CODE}';
        }
    }
]]>
</script>
]]>
</edit>

为了显示目的,我还需要将我的 Javascript 包装在 CDATA 中,因此当我打开该 XML 文件时,它会正确显示,并且 Javascript 代码位于这些 CDATA 标记中。它们在 XML 文件本身中没有真正的意义。

如您所知,上面的代码会给我一个 XML 解析错误,因为嵌套 CDATA 不起作用。有没有办法逃避]]>这样我可以向我的用户展示这些括号?

我希望我足够清楚。

4

1 回答 1

51

您可以]]>通过将 CDATA 部分中的子字符串替换为:

]]]]><![CDATA[>

... line. With this you'll make ]] a part of one CDATA section, and > - of another, that starts right when the preceding one ends.

于 2012-10-12T14:10:40.930 回答