我遇到这种困难的情况,我需要在另一个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不起作用。有没有办法逃脱]]>
所以我可以向用户显示这些括号?
我希望我足够清楚。
答案 0 :(得分:35)
您可以通过将其替换为:
来转义CDATA部分中的]]>
子字符串
]]]]><![CDATA[>
...行。有了这个,你将]]
作为一个CDATA部分的一部分,>
- 作为另一个CDATA部分的一部分,从前一个结束时开始。