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