Usar im谩genes con XSLT
Como se pueden incluir imagenes en un documento XSLT?
Tengo la siguiente DTD:
<!NOTATION gif SYSTEM "Psp.exe">
<!NOTATION jpg SYSTEM "Psp.exe">
<!ENTITY foto1 SYSTEM "foto1.jpg" NDATA jpg>
<!ENTITY foto2 SYSTEM "foto2.gif" NDATA gif>
<!ELEMENT ListadoLibros (libro)+>
<!ELEMENT libro (titulo, autor+, editorial, isbn, comentario?,prestado?,foto?)>
<!ATTLIST libro id ID #REQUIRED>
<!ATTLIST libro fecha_adquisicion CDATA "">
<!ATTLIST libro precio CDATA "" >
<!ATTLIST libro paginas CDATA "" >
<!ATTLIST libro tipo (informatica | novela | viajes | turismo | enciclopedia | matematicas | relatos ) "informatica" >
<!ELEMENT prestado (fecha, aquien)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT autor (nombre, apellidos)>
<!ELEMENT editorial (#PCDATA)>
<!ELEMENT isbn (#PCDATA)>
<!ELEMENT comentario (#PCDATA)>
<!ELEMENT fecha (#PCDATA)>
<!ELEMENT aquien (#PCDATA)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellidos (#PCDATA)>
<!ELEMENT foto EMPTY>
<!ATTLIST foto portada ENTITY #REQUIRED>
He construido el documento XML y es v谩lido. Pero al hacer el documento XSLT no aparece la imagen en el navegador.
Incluyo la imagen de esta manera:
<xsl:template match="foto"> <img src="{unparsed-entity-uri(@portada)}" /> </xsl:template>
Antes de la orden anterior he escrito lo siguiente:
<xsl:apply-templates select="foto" />
Un saludo
Maria Jesus
Tengo la siguiente DTD:
<!NOTATION gif SYSTEM "Psp.exe">
<!NOTATION jpg SYSTEM "Psp.exe">
<!ENTITY foto1 SYSTEM "foto1.jpg" NDATA jpg>
<!ENTITY foto2 SYSTEM "foto2.gif" NDATA gif>
<!ELEMENT ListadoLibros (libro)+>
<!ELEMENT libro (titulo, autor+, editorial, isbn, comentario?,prestado?,foto?)>
<!ATTLIST libro id ID #REQUIRED>
<!ATTLIST libro fecha_adquisicion CDATA "">
<!ATTLIST libro precio CDATA "" >
<!ATTLIST libro paginas CDATA "" >
<!ATTLIST libro tipo (informatica | novela | viajes | turismo | enciclopedia | matematicas | relatos ) "informatica" >
<!ELEMENT prestado (fecha, aquien)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT autor (nombre, apellidos)>
<!ELEMENT editorial (#PCDATA)>
<!ELEMENT isbn (#PCDATA)>
<!ELEMENT comentario (#PCDATA)>
<!ELEMENT fecha (#PCDATA)>
<!ELEMENT aquien (#PCDATA)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT apellidos (#PCDATA)>
<!ELEMENT foto EMPTY>
<!ATTLIST foto portada ENTITY #REQUIRED>
He construido el documento XML y es v谩lido. Pero al hacer el documento XSLT no aparece la imagen en el navegador.
Incluyo la imagen de esta manera:
<xsl:template match="foto"> <img src="{unparsed-entity-uri(@portada)}" /> </xsl:template>
Antes de la orden anterior he escrito lo siguiente:
<xsl:apply-templates select="foto" />
Un saludo
Maria Jesus
Hola Maria....
Porque no nos envias mejor un ejemplo del XML que de la DTD.
Un saludo
Porque no nos envias mejor un ejemplo del XML que de la DTD.
Un saludo
Aqui va el texto XML:
<?xml version="1.0" encoding ="ISO-8859-1" ?>
<?xml-stylesheet href="listadolibros.xsl" type="text/xsl"?>
<!DOCTYPE ListadoLibros SYSTEM "listadolibros.dtd">
<ListadoLibros>
<libro id="1" fecha_adquisicion="10/Nov/2001" precio="4.500 pts">
<titulo>XML a trav茅s de ejemplos</titulo>
<autor><nombre>Abrahan</nombre><apellidos>Gutierrez</apellidos></autor>
<autor><nombre>Raul</nombre><apellidos>Martinez</apellidos></autor>
<editorial>Rama</editorial> <isbn>84-7897-455-5</isbn>
<foto portada="foto1"/>
<comentario>Este es el libro con los primeros pasos sobre XML</comentario>
</libro>
<libro id="2" fecha_adquisicion="8/Mayo/2000" precio="4.900 pts" paginas="540">
<titulo>Desarrollo de aplicaciones en entornos de 4ª generaci贸n y con herramientas Case</titulo>
<autor><nombre>Maria Jes煤s</nombre><apellidos>Ramos</apellidos></autor>
<autor><nombre>Alicia</nombre> <apellidos>Ramos</apellidos></autor>
<autor><nombre>Fernando</nombre> <apellidos>Montero</apellidos></autor>
<editorial>McGrawHill</editorial> <isbn>84-481-2599-1</isbn>
<comentario>Este libro trata sobre la base de datos Oracle. Se ver谩 el Lenguaje SQL, el lenguaje de programaci贸n
PL/SQL y herramientas de desarrollo de Oracle. Forms 5 y Reports 3</comentario>
<prestado><fecha> Enero 2001</fecha> <aquien>Ana</aquien></prestado>
<foto portada="foto2"/>
</libro>
<libro id="3" fecha_adquisicion="10/Dic/2001" precio="1.500 pts" tipo="relatos">
<titulo>Diccionario del diablo</titulo>
<autor><nombre>Ambrose</nombre><apellidos>Bierce</apellidos></autor>
<editorial>Letras universales</editorial> <isbn>84-376-1760-X</isbn>
<comentario>Este diccionario tienen como objetivos: iluminar a las almas que prefieren el vino seco al dulce,
la razon al sentimiento, el ingenio al humor y un ingles pulido al habla dialectal</comentario>
</libro>
</ListadoLibros>
<?xml version="1.0" encoding ="ISO-8859-1" ?>
<?xml-stylesheet href="listadolibros.xsl" type="text/xsl"?>
<!DOCTYPE ListadoLibros SYSTEM "listadolibros.dtd">
<ListadoLibros>
<libro id="1" fecha_adquisicion="10/Nov/2001" precio="4.500 pts">
<titulo>XML a trav茅s de ejemplos</titulo>
<autor><nombre>Abrahan</nombre><apellidos>Gutierrez</apellidos></autor>
<autor><nombre>Raul</nombre><apellidos>Martinez</apellidos></autor>
<editorial>Rama</editorial> <isbn>84-7897-455-5</isbn>
<foto portada="foto1"/>
<comentario>Este es el libro con los primeros pasos sobre XML</comentario>
</libro>
<libro id="2" fecha_adquisicion="8/Mayo/2000" precio="4.900 pts" paginas="540">
<titulo>Desarrollo de aplicaciones en entornos de 4ª generaci贸n y con herramientas Case</titulo>
<autor><nombre>Maria Jes煤s</nombre><apellidos>Ramos</apellidos></autor>
<autor><nombre>Alicia</nombre> <apellidos>Ramos</apellidos></autor>
<autor><nombre>Fernando</nombre> <apellidos>Montero</apellidos></autor>
<editorial>McGrawHill</editorial> <isbn>84-481-2599-1</isbn>
<comentario>Este libro trata sobre la base de datos Oracle. Se ver谩 el Lenguaje SQL, el lenguaje de programaci贸n
PL/SQL y herramientas de desarrollo de Oracle. Forms 5 y Reports 3</comentario>
<prestado><fecha> Enero 2001</fecha> <aquien>Ana</aquien></prestado>
<foto portada="foto2"/>
</libro>
<libro id="3" fecha_adquisicion="10/Dic/2001" precio="1.500 pts" tipo="relatos">
<titulo>Diccionario del diablo</titulo>
<autor><nombre>Ambrose</nombre><apellidos>Bierce</apellidos></autor>
<editorial>Letras universales</editorial> <isbn>84-376-1760-X</isbn>
<comentario>Este diccionario tienen como objetivos: iluminar a las almas que prefieren el vino seco al dulce,
la razon al sentimiento, el ingenio al humor y un ingles pulido al habla dialectal</comentario>
</libro>
</ListadoLibros>
Hola Maria
Nunca he utilizado el 'unparsed-entity-uri' pero por lo que estoy mirando por Internet, me parece que lo haces bien.
Si miras esta direcci贸n:
http://www.dpawson.co.uk/xsl/sect2/notation.html
veras que hay un ejemplo muy parecido al tuyo y hacen exactamente lo mismo.
¿Con que procesador de XSLT estas realizando la transformaci贸n? Por lo que veo al poner la XSLT en la cabecera del documento XML es que estes intentando visualizarlo en el IE5 ¿es asi?. Y me parece que debes estar utilizando una versi贸n de la MSXML que todav铆a no soportaba esta funci贸n.
Si miras esta direcci贸n:
http://www.xmlhack.com/read.php?item=806
y entenderas lo que te digo.
Lo que te recomiendo es que pruebas con otro procesadores de XSLT para asegurarte en un principio que la XSLT es correcta y funcione (p. ej. Saxon) ... Y si funciona prueba a actualizar la versi贸n de la MSXML que esta utilizando tu explorador. Podras obtener m谩s informaci贸n sobre el tema en:
http://www.netcrucible.com/xslt/msxml-faq.htm.
Aunque si este problema te esta pasando a ti, le puede pasar a otros, por lo que igual lo mejor es que cambies la forma de referenciar las im谩genes y te olvides de declararlas como entidades en la DTD..
Ya nos diras algo.
Un saludo.
Nunca he utilizado el 'unparsed-entity-uri' pero por lo que estoy mirando por Internet, me parece que lo haces bien.
Si miras esta direcci贸n:
http://www.dpawson.co.uk/xsl/sect2/notation.html
veras que hay un ejemplo muy parecido al tuyo y hacen exactamente lo mismo.
¿Con que procesador de XSLT estas realizando la transformaci贸n? Por lo que veo al poner la XSLT en la cabecera del documento XML es que estes intentando visualizarlo en el IE5 ¿es asi?. Y me parece que debes estar utilizando una versi贸n de la MSXML que todav铆a no soportaba esta funci贸n.
Si miras esta direcci贸n:
http://www.xmlhack.com/read.php?item=806
y entenderas lo que te digo.
Lo que te recomiendo es que pruebas con otro procesadores de XSLT para asegurarte en un principio que la XSLT es correcta y funcione (p. ej. Saxon) ... Y si funciona prueba a actualizar la versi贸n de la MSXML que esta utilizando tu explorador. Podras obtener m谩s informaci贸n sobre el tema en:
http://www.netcrucible.com/xslt/msxml-faq.htm.
Aunque si este problema te esta pasando a ti, le puede pasar a otros, por lo que igual lo mejor es que cambies la forma de referenciar las im谩genes y te olvides de declararlas como entidades en la DTD..
Ya nos diras algo.
Un saludo.
