Où puis-je obtenir une liste des caractères d'échappement des documents XML ?
Mais pour le HTML, nous n'aurions qu'à échapper aux cinq ci-dessus aussi, non ?
Où puis-je obtenir une liste des caractères d'échappement des documents XML ?
Il n'y en a que cinq :
" "
' '
< <
> >
& &
Ils sont faciles à retenir. Le HTML a son propre jeu de codes d'échappement qui couvrent beaucoup plus de personnages.
@Pacerier, je vous supplie de ne pas écrire votre propre code d'échappement XML/HTML. Utilise une fonction de la bibliothèque ou tu vas forcément rater un cas particulier.
De même, pour les sauts de ligne, vous devez utiliser et pour la tabulation, si vous avez besoin de ces caractères dans un attribut.
Peut-être que cela vous aidera :
Liste des références d'entités de caractères XML et HTML :
Dans les documents SGML, HTML et XML, les constructions logiques connues sous le nom de et valeurs d'attributs consistent en séquences de caractères, dans lesquelles chaque caractère peut se manifester directement (se représenter lui-même), ou peut être représenté par une série de caractères appelée référence de caractères, dont il en existe deux types : une référence numérique référence de caractère et un caractère référence d'entité. Cet article énumère les références d'entités de caractères qui sont valides dans les documents HTML et XML.
Cet article énumère les cinq entités XML prédéfinies suivantes :
quot "
amp &
apos '
lt <
gt >
Selon les spécifications du World Wide Web Consortium (w3C), il existe 5 caractères qui ne doivent pas apparaître sous leur forme littérale dans un document XML sauf lorsqu'il est utilisé comme délimiteur de balisage ou dans un commentaire, une instruction de traitement ou une section CDATA. Dans tous les autres cas, ces caractères doivent être remplacés soit par l'entité correspondante, soit par la référence numérique selon le tableau suivant :
<strong>Original Character</strong><strong>XML entity replacement</strong><strong>XML numeric replacement</strong>
< < <
> > >
" " "
& & &
' ' '
Notez que les entités susmentionnées peuvent être utilisées également en HTML, à l'exception de ' qui a été introduit avec XHTML 1.0 et n'est pas déclaré dans HTML 4. Pour cette raison, et pour assurer la rétro-compatibilité, la spécification XHTML recommande l'utilisation de ' à la place.
Le XML prédéfinit ces cinq entités, mais il ne spécifie absolument PAS que vous ne pouvez utiliser aucun de ces cinq caractères dans leur forme littérale. < et & doivent être échappés partout (sauf CDATA). " et ' ne doivent être échappés que dans les valeurs d'attributs, et seulement si le caractère de citation correspondant est le même. Et > ne doit jamais être échappé.
Comme écrit ci-dessus, < > " & ' ne doivent pas être échappés lorsqu'ils sont utilisés comme délimiteurs de balisage ou à l'intérieur d'un commentaire, d'une instruction de traitement ou d'une section CDATA. Autrement dit, lorsque vous utilisez < > comme balise XML, vous ne l'échappez pas. C'est la même chose pour un commentaire (échapperiez-vous un & dans une ligne commentée d'un fichier XML ? Vous n'avez pas besoin de le faire, et votre XML est toujours valide si vous ne le faites pas). Ceci est clairement spécifié dans la norme recommandations officielles pour XML par le W3C .
@ShaunMcCance >
doit être échappé s'il suit ]]
à l'intérieur du contenu, à moins qu'il ne soit destiné à faire partie du ]]>
délimiteur qui indique la fin d'une section CDATA.
L'échappement des caractères est différent pour les balises et les attributs.
Pour les tags :
< <
> >
& &
Pour les attributs :
" "
' '
http://www.w3.org/TR/2008/REC-xml-20081126/#syntax
Le caractère esperluette (&) et la parenthèse gauche (<) ne doivent pas apparaître sous leur forme littérale, sauf lorsqu'ils sont utilisés comme délimiteurs de balisage, ou à l'intérieur d'un commentaire, d'une instruction de traitement ou d'une section CDATA. S'ils sont nécessaires ailleurs, ils doivent être échappés en utilisant des références numériques ou les chaînes " & " et " < " respectivement. Le crochet droit (>) peut être représenté par la chaîne " > " et doit, par souci de compatibilité, être échappé à l'aide de " > " ou d'une référence de caractère lorsqu'il apparaît dans la chaîne " ]]> " dans le contenu, lorsque cette chaîne ne marque pas la fin d'une section CDATA.
Pour permettre aux valeurs d'attributs de contenir à la fois des guillemets simples et doubles, l'apostrophe ou le caractère guillemet simple (') peut être représenté par " ' ", et le caractère guillemet double (") par " " ".
En plus des cinq caractères connus [<, >, &, ", '], j'échapperais également le caractère de tabulation verticale (0x0B). Il s'agit d'un caractère UTF-8 valide, mais pas d'un caractère XML 1.0 valide, et même de nombreuses bibliothèques (y compris libxml2) le manquent et produisent silencieusement un XML invalide.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
7 votes
Exemple :
<company>AT&T</company>
0 votes
Ver Escaping XML simplifié ci-dessous pour un guide concis et facile à mémoriser que j'ai distillé à partir de sources primaires ( Langage de balisage extensible (XML) 1.0 du W3C (cinquième édition) ).
1 votes
Littéralement aucune des réponses ici n'est correcte. Vous devez également échapper à de nombreux caractères de contrôle en XML 1.1.