Использование 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, и > - другого, который начинается сразу после окончания предыдущего.

Другие вопросы по тегам