J'ai du texte XML que je souhaite afficher dans une page HTML. Ce texte contient une esperluette, que je veux rendre dans sa représentation d' une entité: &
.
Comment échapper à cette esperluette dans le XML source? J'ai essayé &
, mais cela est décodé en tant que caractère esperluette ( &
), qui n'est pas valide en HTML .
Je veux donc y échapper de telle manière qu'il sera rendu comme &
dans la page Web qui utilise la sortie XML.
Réponses:
Lorsque votre XML contient
&
, cela se traduira par le texte&
.Lorsque vous utilisez cela en HTML, cela sera rendu sous la forme
&
.la source
Conformément au §2.4 de la spécification XML 1.0 , vous devriez pouvoir l'utiliser
&
.Êtes-vous sûr que ce n'est pas un problème différent? XML définit explicitement cela comme le moyen d'échapper aux esperluettes.
la source
Le
&
caractère est lui-même un caractère d'échappement en XML, la solution consiste donc à le concaténer et un équivalent décimal Unicode pour&
garantir ainsi qu'il n'y a pas d'erreurs d'analyse XML. Autrement dit, remplacez le caractère&
par&
.la source
&
Utilisez des
CDATA
balises:la source
&
devrait fonctionner très bien, Wikipedia a une liste d'entités prédéfinies en XML .la source
Dans mon cas, j'ai dû le changer en
%26
.J'avais besoin de m'échapper
&
dans une URL. Donc ça&
n'a pas marché pour moi. La urlencode fonction change&
à%26
. De cette façon, ni XML ni le mécanisme d'URL du navigateur ne se plaignaient de l'URL.la source
J'ai essayé et ampli, mais cela n'a pas fonctionné. Sur la base de la réponse de Wim ten Brink, j'ai essayé & amp; amp et cela a fonctionné.
Un de mes collègues développeurs m'a proposé d'utiliser & # x26; et cela a fonctionné quel que soit le nombre de fois où il peut être rendu.
la source
&
est le moyen de représenter une esperluette dans la plupart des sections d'un document XML.Si vous voulez que XML soit affiché dans HTML, vous devez d'abord créer du XML correctement encodé (ce qui implique de passer
&
à&
), puis l' utiliser pour créer du HTML correctement encodé (ce qui implique à nouveau de changer&
en&
). Cela se traduit par:Pour une explication plus approfondie du codage XML, voir:
De quels caractères ai-je besoin pour m'échapper dans les documents XML?
la source
<xsl:text disable-output-escaping="yes">& </xsl:text>
fera l'affaire.la source
Que diriez-vous d'utiliser l'unicode
\u0026
? Fonctionne pour moi dans mes fichiers XML Android. Si des problèmes surviennent, quelqu'un me le fait savoir.la source
\u
les échappements n'ont aucune signification particulière dans XML en général. -1.Vérifiez si votre XML ressemble à ci-dessous.
Vous ne pouvez pas utiliser le
<>
directement car il génère une erreur. Dans ce cas, vous pouvez utiliser<>
en remplacement de cela.Cliquez ici pour voir tous les codes.
la source