Foros del Web » Programación para mayores de 30 ;) » Programación General »

Problema con xsl y caracteres html

Estas en el tema de Problema con xsl y caracteres html en el foro de Programación General en Foros del Web. Hola, mi problema consiste en que no soy capaz de transformar los caracteres html (  , € , ...) en sus correspondientes caracteres unicode para ...
  #1 (permalink)  
Antiguo 01/02/2011, 03:23
 
Fecha de Ingreso: octubre-2008
Ubicación: Plasencia
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 6
Problema con xsl y caracteres html

Hola, mi problema consiste en que no soy capaz de transformar los caracteres html (  , € , ...) en sus correspondientes caracteres unicode para poder motrarlos mediante un documento xsl.

Para aclararnos pongo el siguiente ejemplo:

Código XSL:
Ver original
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <!DOCTYPE xsl:stylesheet  [
  3.     <!ENTITY nbsp   " ">
  4.     <!ENTITY euro   "€">
  5. ]>
  6. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  7. <xsl:output method="html" encoding="iso-8859-1"/>
  8. <xsl:template match="/">
  9.   <xsl:value-of select="DatosProyectos/Presupuesto" /> &euro;
  10. </xsl:template>
  11. </xsl:stylesheet>

De esta forma la transformación xslt se realiza pero el simbolo del euro no se muestra (no muestra nada), sin embargo si escribo directamente el código asociado a dicho símbolo, sí que se muestra, por ejemplo:

Código XSL:
Ver original
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2.  
  3. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  4. <xsl:output method="html" encoding="iso-8859-1"/>
  5. <xsl:template match="/">
  6.   <xsl:value-of select="DatosProyectos/Presupuesto" /> €
  7. </xsl:template>
  8. </xsl:stylesheet>

Por tanto creo que debo estar haciendo algo mal, o debe faltar algo en el código para que la traducción de los caracteres se realice correctamente.
Si alguien puediera ayudarme le estaría enormemente agradecido.

Un saludo.
  #2 (permalink)  
Antiguo 01/02/2011, 06:30
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Respuesta: Problema con xsl y caracteres html

Probaste colocando los símbolos en el XML y no en el XSL ?

Igualmente recuerdo que una vez terminé escribiendo literalmente los valores como hiciste en tu 2do ejemplo...Funciona bien en todos los navegadores...

__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 02/02/2011, 01:27
 
Fecha de Ingreso: octubre-2008
Ubicación: Plasencia
Mensajes: 109
Antigüedad: 15 años, 6 meses
Puntos: 6
Respuesta: Problema con xsl y caracteres html

Perdon, no me di cuenta de que los códigos que escribí en los ejemplos fueron traducidos por sus correspondientes caracteres, los vuelvo a escribir correctamente:

Este es el código en el que el símbolo del euro no se muestra:

Código XSL:
Ver original
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <!DOCTYPE xsl:stylesheet  [
  3.   <!ENTITY nbsp   "&amp;#160;">
  4.   <!ENTITY euro   "&amp;#8364;">
  5. ]>
  6. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  7. <xsl:output method="html" encoding="iso-8859-1"/>
  8. <xsl:template match="/">
  9.   <xsl:value-of select="DatosProyectos/Presupuesto" /> &amp;euro;
  10. </xsl:template>
  11. </xsl:stylesheet>

Y este es en el que sí que se muestra escribiendo literalmente su código unicode:

Código XSL:
Ver original
  1. <?xml version="1.0" encoding="iso-8859-1"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:output method="html" encoding="iso-8859-1"/>
  4. <xsl:template match="/">
  5.   <xsl:value-of select="DatosProyectos/Presupuesto" /> &amp;#8364;
  6. </xsl:template>
  7. </xsl:stylesheet>

Donde he puesto &amp; se supone que debería poner &, no realiza correctamente la traducción.

Última edición por beni0888; 02/02/2011 a las 01:33

Etiquetas: html, xsl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:07.