lenguaje - use xml in html
¿Cómo puedo escapar de ampersands en XML para que se representen como entidades en HTML? (12)
Tengo un texto XML que deseo representar en una página HTML. Este texto contiene un ampersand, que quiero representar en su representación de entidad: &
.
¿Cómo puedo escapar de este signo en el código fuente XML? Probé &
, pero esto se decodifica como el carácter de signo ( &
) real, que no es válido en HTML .
Así que quiero evitarlo de tal manera que se renderice como &
En la página web que utiliza la salida XML.
¿Qué hay de usar el Unicode /u0026
? Funciona para mí en mis archivos XML de Android. Si surgen problemas, alguien me lo comunique.
Considere si su XML se ve a continuación.
<Employees Id="1" Name="ABC">
<Query>
SELECT * FROM EMP WHERE ID=1 AND RES<>''GCF''
<Query>
</Employees>
No puede utilizar el <>
directamente, ya que arroja un error. En ese caso, puede utilizar <>
en reemplazo de eso.
<Employees Id="1" Name="ABC">
<Query>
SELECT * FROM EMP WHERE ID=1 AND RES <> ''GCF''
<Query>
</Employees>
Haga clic aquí para ver todos los códigos.
Cuando su XML contiene &amp;
, esto resultará en el texto &
.
Cuando lo uses en HTML, se representará como &
.
El carácter &
es en sí mismo un carácter de escape en XML, por lo que la solución es concatenar y un equivalente decimal de Unicode para garantizar que no haya errores de análisis de XML. Es decir, reemplace el carácter &
con &
.
En mi caso tuve que cambiarlo a %26
.
Necesitaba escapar &
en una URL. Así que &
no funcionó para mí La función urlencode cambia a %26
. De esta manera, ni el XML ni el mecanismo de la URL del navegador se quejaron de la URL.
Etiquetas CDATA?
<![CDATA[
This is some text with ampersands & other funny characters. >>
]]>
He intentado & amp, pero no funcionó. Basado en la respuesta de Wim ten Brink, probé & amp; amp; y funcionó.
Uno de mis colegas desarrolladores me sugirió usar & # x26; y eso funcionó sin importar cuantas veces pueda ser renderizado.
Según §2.4 de la especificación XML 1.0 , debería poder usar &
.
Probé & amp; pero esto no está permitido.
¿Estás seguro de que no es un problema diferente? XML explícitamente define esto como la forma de escapar ampersands.
Un problema relacionado es cómo codificar el contenido del elemento XML cuando dicho contenido contiene un signo - si el XML es parte de un URI enviado con una acción GET. (Dejando a un lado la sabiduría de tal API, fue algo con lo que tuve que lidiar hoy). Intenté todo lo mencionado anteriormente, y lo único que realmente funcionó fue %26amp;
El %26
era necesario para codificar en URL el primer carácter de la codificación XML para el símbolo comercial. El amp;
fue necesario seguir el %26
porque la parte XML del URI se estaba cargando en un lado del servidor de documentos XML. Entonces, en este escenario divertido, fue necesario grapar ambas metodologías de codificación juntas.
&
debería funcionar bien, Wikipedia tiene una lista de entidades predefinidas en XML .
&
es la forma de representar un signo en la mayoría de las secciones de un documento XML.
Si desea que se muestre XML dentro de HTML, primero debe crear XML codificado correctamente (lo que implica cambiar &
to &
) y luego usarlo para crear HTML codificado correctamente (lo que implica cambiar de nuevo &
to &
). Eso resulta en:
&amp;
Para una explicación más completa de la codificación XML, vea:
<xsl:text disable-output-escaping="yes">& </xsl:text>
hará el truco.