Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Programación General (http://www.forosdelweb.com/f14/)
-   -   HTML dentro de un XML e imprimirlo con XSL ¿se puede? (http://www.forosdelweb.com/f14/html-dentro-xml-e-imprimirlo-con-xsl-puede-246573/)

tuxiradical 12/11/2004 11:10

HTML dentro de un XML e imprimirlo con XSL ¿se puede?
 
Hola.
Estoy desarrollando un script en php, que lo que hace es formar un XML para luego transformarlo con XSL en un html.
Bien, uno de esos campos, contiene XHTML, pero si lo meto, al imprimirlo en el XSL se considera como un tag dentro de otro tag, y si uso el <![CDATA[ ]]> pues, lo considera como texto.

¿como puedo imprimirlo como HTML?

Aqui tienes el XML formado:
Código:

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet href="themes/black/theme.xsl" type="text/xsl"?>
<sblog version="2.0-alpha">
        <meta>
                <title>SBlog 3 ALPHA</title>
        </meta>
        <texto>
                <type>articulos</type>
                <id>4</id>
                <titulo>Prueba de SBlog2</titulo>
                <comentario>Bienvenido a la prueba de SBlog2.<br />
La version que estas viendo en esotos momentos, no es nada mas que una muy muy muy muy muy muy alpha, solamente tiene como fin enseñarle a los usuarios como sera esteticamente por fuera.<br />
Ademas, me servira para que veais, que efectivamente utilizo XML, XSL y CSS para formas el documento entero.<br />
Espero que les guste.<br /><br />
Atentamente, David.</comentario>
                <articulo><![CDATA[<br><b>wowo</b>Bienvenido a la prueba de SBlog2.<br />
La version que estas viendo en esotos momentos, no es nada mas que una muy muy muy muy muy muy alpha, solamente tiene como fin enseñarle a los usuarios como sera esteticamente por fuera.<br />
Ademas, me servira para que veais, que efectivamente utilizo XML, XSL y CSS para formas el documento entero.<br />
Espero que les guste.<br /><br />
Atentamente, David.]]></articulo>
                <autor>0</autor>
                <fecha>2004-11-12 16:52:24</fecha>
                <categoria>General</categoria>
                <comentarios>0</comentarios>
                <trackbacks>0</trackbacks>
                <pingbacks>0</pingbacks>
                <url>article.php?id=4</url>
        </texto>
        <time>0.0546598434448</time>
</sblog>

Pueden ver que en <sblog><texto><comentarios> utilizo xhtml sin el CDATA y en <sblog><texto><articulo> utilizo xhtml con el CDATA.

Y el XSL:
Código:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">

<html>
        <head>
                <title><xsl:value-of select="sblog/meta/title" /></title>
                <link href="themes/black/css.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
                <div id="contenido">
                        <xsl:for-each select="sblog/texto">
                                <xsl:if test="type='articulos'">
                                        <div class="articulo">
                                                <div class="titulo">
                                                        <span>
                                                                <xsl:value-of select="titulo" />
                                                        </span>
                                                </div>
                                                <div class="descripcion">
                                                        <xsl:value-of select="articulo" />
                                                </div>
                                                <div class="menu">
                                                        <span>
                                                                Archivado en <xsl:value-of select="categoria" /> |
                                                                Comentarios (<xsl:value-of select="comentarios" />) |
                                                                TB (<xsl:value-of select="trackbacks" />) |
                                                                PB (<xsl:value-of select="pingbacks" />)
                                                        </span>
                                                </div>
                                        </div>
                                </xsl:if>
                        </xsl:for-each>
                </div>
        </body>
</html>

</xsl:template>
</xsl:stylesheet>

mmm... busquen el <xsl:value-of select="articulo"> porque es un lio encontrarlo xD.

Haber si alguien me puede ayudar.

Gracias de antemano.

Muzztein 12/11/2004 19:35

<xsl:value-of select="tu_campo_entre_cdata" disable-output-escaping="yes" />

tuxiradical 13/11/2004 04:16

Ya lo he probado (ahora lo volvere a probar no vaya a ser que el ordenta estuviera loco ayer).
Nada, sigue apareciendo el maldito <br /> argggg. En tu computaora funciono?

Bueno, probare haber si desde internet funciona (la esperanza es lo ultimo que se pierde xD).

Saludos.

cabral 15/11/2004 01:27

Utiliza la etiqueta <xsl:copy-of select="tu nodo">.

Esa pregunta ya estaba en este foro....ahi que mirar un poquito antes de nada, jejeje :-p

tuxiradical 11/12/2004 12:53

Hola.
Siento tardar en contestar.

Cabral, eso me funciona si NO esta dentro de un CDATA, pero deberia estarlo por si acaso el codigo HTML esta mal formado que no de ningun error.

Saludos.

Helbira 11/12/2004 15:07

Y dices que a la fuerza tiene que ser dentro de un CDATA?

En caso que no tuviera que serlo, porque no defines en el XSL un

<xsl:template match="br">
<br>
</xsl:template>

Helbira 11/12/2004 15:09

olvida lo que te he dicho.. esta mal


La zona horaria es GMT -6. Ahora son las 03:18.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.