Использование CDATA внутри другого CDATA

У меня есть эта сложная ситуация, когда мне нужно использовать теги 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 не будет работать. Есть ли способ избежать ]]>, чтобы я мог показывать эти скобки для моих пользователей?

Надеюсь, я был достаточно ясным.

Ответ 1

Вы можете избежать подстроки ]]> в секции CDATA, заменив ее на:

]]]]><![CDATA[>

... строка. С этим вы сделаете ]] частью одного раздела CDATA и > - другого, который начнется правильно, когда закончится предыдущий.