Retroceder   Foros del Web > Programación para sitios web > XML

Respuesta
 
Herramientas Desplegado
Antiguo 11-nov-2006, 18:49   #1 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.492
Enviar un mensaje por MSN a monoswim Enviar un mensaje por Yahoo  a monoswim
XSL: mostrar el HTML de un CDATA

Tengo un XML que tiene en un lugar un CDATA con un código fuente HTML dentro...

Al mostrarlo desde el XSL me muestra el código fuente, sin interpretarlo... o sea que en vez de poner hola en negrita me pone <b>hola</b>

Como puedo hacer que me lo interprete ?

Saludos
monoswim está desconectado   Responder Citando
Antiguo 12-nov-2006, 15:55   #2 (permalink)
Colaborador
Mikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradable
 
Avatar de Mikmoro
 
Fecha de Ingreso: octubre-2006
Ubicación: A tu espalda
Mensajes: 3.450
Yo diría que debes usar la etiqueta copy-of para que muestre el contenido del CDATA tal cual.

<xsl:template match="tu_etiqueta">
<xsl:copy-of select="."/>
</xsl:template>

Esto sacará el conteido tal cuál, y por tanto será interpretada la negrita.
Mikel.
Mikmoro está desconectado   Responder Citando
Antiguo 13-nov-2006, 10:06   #3 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.492
Enviar un mensaje por MSN a monoswim Enviar un mensaje por Yahoo  a monoswim
No me funciona como dices

<xsl:template match="/root/pagina">
<div class="pTitle"><xsl:value-of select="titulo" /></div>
<xsl:copy-of select="cuerpo" />
</xsl:template>

el XMl es
<root><pagina>
<titulo>quelindo</titulo>
<cuerpo>hola<b>que onda</b></cuerpo>
</pagina></root>

me muestra el código fuente con los <b> y todo, al igual que si pongo el value-of

Que podría ser / hacer ?

Saludos
monoswim está desconectado   Responder Citando
Antiguo 13-nov-2006, 11:35   #4 (permalink)
Colaborador
Mikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradable
 
Avatar de Mikmoro
 
Fecha de Ingreso: octubre-2006
Ubicación: A tu espalda
Mensajes: 3.450
Buscando el problema

He hecho la prueba con tu xml y el código xsl que pones y veo perfectamente la negrita, tanto en Explorer como en Firefox. Igual el problema está en la cabecera:
¿Tienes puesto en la cabecera del archivo xsl los siguente?

<xsl:output method="html" encoding="ISO-8859-1"/>

En Firefox, si tienes el method de salida como xml (xsl:output method="xml"), no verás la negrita, porque devuelve un xml que no interpreta el formato, pero si pones html como salida ves la negrita perfectamente. No sé si será este el problema. Si no, pon el archivo xslt al completo a ver si se ve otra cosa.
Mikel.
Mikmoro está desconectado   Responder Citando
Antiguo 13-nov-2006, 12:39   #5 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.492
Enviar un mensaje por MSN a monoswim Enviar un mensaje por Yahoo  a monoswim
wow, joder, es verdad, ese código funciona y hace lo que necesito...Ahora veré paso por paso que es lo que puede estar fallando en mi código entero...

Saludos y gracias !!!
monoswim está desconectado   Responder Citando
Antiguo 14-nov-2006, 05:43   #6 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.492
Enviar un mensaje por MSN a monoswim Enviar un mensaje por Yahoo  a monoswim
Me funciona pero sin el CDATA, poniendo directamente el código entre los tags...Con el CDATA no me funca...

para poner código HTML dentro de un XML lo correcto es el cdata no ?

O es correcto tirar los tags dentro del XML ?

Saludos
monoswim está desconectado   Responder Citando
Antiguo 14-nov-2006, 10:58   #7 (permalink)
Colaborador
Mikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradableMikmoro es realmente agradable
 
Avatar de Mikmoro
 
Fecha de Ingreso: octubre-2006
Ubicación: A tu espalda
Mensajes: 3.450
Depende

No, justamente al estar en un CDATA le estás diciendo: "lo que viene a continuación es código, y no debes interpretarlo", de forma que por eso no lo interpreta. Depende de qué código debe ir directamente dentro de la etiqueta que sea, pero según cuál, puede que sea mejor que le dés una característica única a esa etiqueta y luego añadas el código mediante la xslt.

En el ejemplo que ponías,

<root><pagina>
<titulo>quelindo</titulo>
<cuerpo>hola<b>que onda</b></cuerpo>
</pagina></root>

es posible hacerlo así sin que pase nada (todo depende de tu DTD), pero también sería posible separar lo que va en negrita en otra etiqueta y sacarla en negrita con la xslt, por ejemplo:

<root><pagina>
<titulo>quelindo</titulo>
<cuerpo>hola</cuerpo>
<saludo>que onda</saludo>
</pagina></root>

Y luego en la xslt añadir
<xsl:template match="saludo">
<b>
<xsl:apply-templates/>
</b>
</xsl:template>

Según qué quieras usar es mejor hacerlo de una manera o de otra, aunque en general es mejor la segunda.
Mikel.
Mikmoro está desconectado   Responder Citando
Antiguo 14-nov-2006, 11:47   #8 (permalink)
$moderador{'Esteban'}
monoswim llegará a ser famoso muy prontomonoswim llegará a ser famoso muy pronto
 
Avatar de monoswim
 
Fecha de Ingreso: noviembre-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 7.492
Enviar un mensaje por MSN a monoswim Enviar un mensaje por Yahoo  a monoswim
Mil gracias chaval, me quedó más que claro !!!

Saludos
monoswim está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 13:57.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93