Comment puis-je échapper des guillemets doubles dans les valeurs d'attributs XML?


Réponses:


224

Vous pouvez utiliser "


3
Une convention de dénomination explicite et plus longue est meilleure que les acronymes ou une convention abrégée lors de la dénomination de variables, de fonctions, d'attributs, etc. Je prendrai la clarté sur la brièveté à tout moment - c'est mon opinion non sollicitée.
Daniel Sokolowski

1
Je suis d'accord avec Daniel. La concision peut vous faire gagner 1 seconde de saisie, mais les gens doivent ensuite passer 10 minutes à essayer de comprendre ce qui se passe.
NL3294

@Daniel Sokolowski: De quoi parlez-vous tous les deux? Y a-t-il un contexte manquant (par exemple des commentaires supprimés)?
Peter Mortensen

Doit être @PeterMortensen, j'oublie maintenant, c'était il y a presque 7 ans :)
Daniel Sokolowski

54

À partir de la spécification XML :

Pour permettre aux valeurs d'attribut de contenir à la fois des guillemets simples et doubles, l'apostrophe ou le caractère guillemet simple (') peut être représenté par "& apos;" et le caractère guillemet double (") par" "".


17

Un caractère guillemet double ( ") peut être échappé comme ", mais voici le reste de l'histoire ...

Le caractère guillemet double doit être échappé dans ce contexte:

  • Dans les attributs XML délimités par des guillemets doubles:

    <EscapeNeeded name="Pete &quot;Maverick&quot; Mitchell"/>

Les guillemets doubles n'ont pas besoin d' être échappés dans la plupart des contextes:

  • Dans le contenu textuel XML:

    <NoEscapeNeeded>He said, "Don't quote me."</NoEscapeNeeded>
  • Dans les attributs XML délimités par des guillemets simples ( '):

    <NoEscapeNeeded name='Pete "Maverick" Mitchell'/>

    De même, ( ') ne nécessite aucun échappement si ( ") est utilisé pour les délimiteurs de valeur d'attribut:

    <NoEscapeNeeded name="Pete 'Maverick' Mitchell"/>

Voir également


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.