Eu tenho algum texto XML que desejo renderizar em uma página HTML. Este texto contém um e comercial, o que eu quero para processar em sua representação entidade: &
.
Como escapar desse e comercial no XML de origem? Eu tentei &
, mas isso é decodificado como o caractere comercial real ( &
), que é inválido no HTML .
Então, eu quero evitá-lo de tal maneira que seja renderizado como &
na página da web que usa a saída XML.
Respostas:
Quando o seu XML contiver
&
, isso resultará no texto&
.Quando você usa isso em HTML, isso será renderizado como
&
.fonte
Conforme §2.4 da especificação XML 1.0 , você deve poder usar
&
.Tem certeza de que não é um problema diferente? O XML define explicitamente isso como a maneira de escapar do e comercial.
fonte
O
&
caractere é ele próprio um caractere de escape em XML, portanto a solução é concatená-lo e um equivalente decimal em Unicode para&
garantir, assim, que não haja erros de análise de XML. Ou seja, substitua o caractere&
por&
.fonte
&
Use
CDATA
tags:fonte
&
deve funcionar bem, a Wikipedia possui uma lista de entidades predefinidas em XML .fonte
No meu caso, tive que mudar para
%26
.Eu precisava escapar
&
em um URL. Então&
não deu certo para mim. A função urlencode muda&
para%26
. Dessa forma, nem o XML nem o mecanismo de URL do navegador reclamaram sobre o URL.fonte
Eu tentei & amp, mas não funcionou. Baseado na resposta de Wim ten Brink, tentei & amp; funcionou.
Um dos meus colegas desenvolvedores sugeriu que eu usasse o & # x26; e funcionou independentemente de quantas vezes ele pode ser renderizado.
fonte
&
é a maneira de representar um e comercial na maioria das seções de um documento XML.Se você deseja exibir o XML no HTML, primeiro é necessário criar o XML codificado corretamente (o que envolve a alteração
&
para&
) e, em seguida, usá-lo para criar o HTML codificado corretamente (o que envolve a alteração novamente&
no&
). Isso resulta em:Para uma explicação mais completa da codificação XML, consulte:
Quais caracteres eu preciso para escapar nos documentos XML?
fonte
<xsl:text disable-output-escaping="yes">& </xsl:text>
fará o truque.fonte
Que tal usar o unicode
\u0026
? Funciona para mim nos meus arquivos XML do Android. Se surgirem problemas, alguém me avise.fonte
\u
escapes não têm significado especial em XML em geral. -1.Considere se o seu XML se parece abaixo.
Você não pode usar o
<>
diretamente, pois gera um erro. Nesse caso, você pode usar<>
em substituição a isso.Clique aqui para ver todos os códigos.
fonte