Мне было интересно, есть ли способ избежать конечного токена CDATA ( ]]>) в разделе CDATA в документе xml. Или, в более общем смысле, если есть какая-то escape-последовательность для использования в CDATA (но если она существует, я думаю, что, в любом случае, имеет смысл только избегать токенов начала или конца).
В принципе, можете ли вы иметь начальный или конечный токен, встроенный в CDATA, и указать парсеру, чтобы он не интерпретировал его, а обрабатывал его как просто другую последовательность символов.
Возможно, вам следует просто провести рефакторинг своей xml-структуры или кода, если вы обнаружите, что пытаетесь это сделать, но хотя я работал с xml ежедневно в течение последних 3 лет или около того, и у меня никогда не было этой проблемы, Мне было интересно, возможно ли это. Просто из любопытства.
Редактировать:
Кроме использования кодировки html ...
CDATAбыл разработан, чтобы разрешить все : они используются для экранирования блоков текста, содержащих символы, которые в противном случае были бы распознаны как разметка. Это также подразумевает, CDATAпоскольку это также разметка. Но на самом деле вам не нужно двойное кодирование, о котором я говорил. ]]>является приемлемым средством кодирования CDEndв CDATA.
>как>в CData, чтобы гарантировать, что встроенное]]>не будет проанализировано как CDEnd. Это просто означает, что это неожиданно, и это&должно быть ПЕРВОЕ закодировано,&чтобы данные можно было правильно декодировать. Пользователи документа должны знать, как декодировать эти CData. Это не является чем-то необычным, поскольку часть цели CData состоит в том, чтобы содержать контент, с которым конкретный потребитель понимает, как обращаться. Нельзя ожидать, что такая CData будет правильно интерпретирована любым универсальным потребителем.