Je me demandais s'il existe un moyen d'échapper à un jeton de fin CDATA ( ]]>
) dans une section CDATA dans un document xml. Ou, plus généralement, s'il existe une séquence d'échappement à utiliser dans un CDATA (mais si elle existe, je suppose que cela n'aurait probablement de sens que d'échapper aux jetons de début ou de fin, de toute façon).
Fondamentalement, pouvez-vous avoir un jeton de début ou de fin incorporé dans un CDATA et dire à l'analyseur de ne pas l'interpréter mais de le traiter comme une autre séquence de caractères.
Probablement, vous devriez simplement refactoriser votre structure xml ou votre code si vous essayez de le faire, mais même si je travaille quotidiennement avec xml depuis environ 3 ans et que je n'ai jamais eu ce problème, Je me demandais si c'était possible. Juste par curiosité.
Éditer:
Autre que l'utilisation du codage html ...
CDATA
été conçu pour autoriser tout : ils sont utilisés pour échapper des blocs de texte contenant des caractères qui seraient autrement reconnus comme du balisage Cela implique CDATA
aussi puisqu'il s'agit également de balisage. Mais, en fait, vous n'avez pas besoin du double encodage que j'impliquais. ]]>
est un moyen acceptable de coder un CDEnd
dans un CDATA
.
>
comme>
dans CData pour garantir que intégré]]>
ne sera pas analysé comme CDEnd. Cela signifie simplement que c'est inattendu et que cela&
doit d'abord être encodé&
pour que les données puissent être correctement décodées. Les utilisateurs du document doivent également savoir décoder ce CData. Ce n'est pas rare car une partie de l'objectif de CData est de contenir du contenu qu'un consommateur spécifique comprend comment gérer. On ne peut pas s'attendre à ce qu'un tel CData soit interprété correctement par un consommateur générique.