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

Réponses:

224

Vous pouvez utiliser "

Sachin Shanbhag
la source
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" "".

Wim Coenen
la source
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

kjhughes
la source
8

La page de conversion de chaîne sur le site Coder's Toolbox est pratique pour encoder plus d'une petite quantité de code HTML ou XML à inclure en tant que valeur dans un élément XML.

Kenny Evitt
la source