Se ofrecen a continuación unas posibles soluciones de los ejercicios XSLT (2). Estos ejercicios se pueden resolver de varias maneras.
Convertir las etiquetas en atributos:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<museos>
<xsl:apply-templates />
</museos>
</xsl:template>
<xsl:template match="museo">
<museo>
<xsl:attribute name="nombre"><xsl:value-of select="nombre" /></xsl:attribute>
<xsl:attribute name="ciudad"><xsl:value-of select="ciudad" /></xsl:attribute>
<xsl:attribute name="pais"><xsl:value-of select="pais" /></xsl:attribute>
</museo>
</xsl:template>
</xsl:stylesheet>
Convertir alguna etiquetas en atributos:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<museos>
<xsl:apply-templates />
</museos>
</xsl:template>
<xsl:template match="museo">
<museo>
<nombre><xsl:value-of select="nombre" /></nombre>
<ubicacion>
<xsl:attribute name="ciudad"><xsl:value-of select="ciudad" /></xsl:attribute>
<xsl:attribute name="pais"><xsl:value-of select="pais" /></xsl:attribute>
</ubicacion>
</museo>
</xsl:template>
</xsl:stylesheet>
Cambiar la estructura del documento:
Para que el formato fuera como en el enunciado, se tendrían que eliminar las líneas en blanco.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/">
<ciudades>
<xsl:apply-templates />
</ciudades>
</xsl:template>
<xsl:template match="museo">
<ciudad>
<nombre><xsl:value-of select="ciudad" /></nombre>
<pais><xsl:value-of select="pais" /></pais>
<museo><xsl:value-of select="nombre" /></museo>
</ciudad>
</xsl:template>
</xsl:stylesheet>
Cambiar la estructura del documento y algunas etiquetas en atributos:
Para que el formato fuera como en el enunciado, se tendrían que eliminar las líneas en blanco.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/">
<ciudades>
<xsl:apply-templates />
</ciudades>
</xsl:template>
<xsl:template match="museo">
<ciudad>
<xsl:attribute name="nombre"><xsl:value-of select="ciudad" /></xsl:attribute>
<xsl:attribute name="pais"><xsl:value-of select="pais" /></xsl:attribute>
<museo><xsl:value-of select="nombre" /></museo>
</ciudad>
</xsl:template>
</xsl:stylesheet>
Cambiar la estructura del documento y algunas etiquetas en atributos:
Para que el formato fuera como en el enunciado, se tendrían que eliminar las líneas en blanco.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/">
<paises>
<xsl:apply-templates />
</paises>
</xsl:template>
<xsl:template match="museo">
<pais>
<xsl:attribute name="nombre"><xsl:value-of select="pais" /></xsl:attribute>
<museo>
<xsl:attribute name="museo"><xsl:value-of select="nombre" /></xsl:attribute>
<xsl:attribute name="ciudad"><xsl:value-of select="ciudad" /></xsl:attribute>
</museo>
</pais>
</xsl:template>
</xsl:stylesheet>
Convertir los atributos en etiquetas:
Para que el formato fuera como en el enunciado, se tendrían que eliminar las líneas en blanco.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/">
<museos>
<xsl:apply-templates />
</museos>
</xsl:template>
<xsl:template match="museo">
<museo>
<nombre><xsl:value-of select="@nombre" /></nombre>
<ciudad><xsl:value-of select="@ciudad" /></ciudad>
<pais><xsl:value-of select="@pais" /></pais>
</museo>
</xsl:template>
</xsl:stylesheet>
Convertir algunos atributos en etiquetas:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<museos>
<xsl:apply-templates />
</museos>
</xsl:template>
<xsl:template match="museo">
<museo>
<xsl:attribute name="ubicacion"><xsl:value-of select="@ciudad" /> (<xsl:value-of select="@pais" />)</xsl:attribute>
<xsl:value-of select="@nombre" />
</museo>
</xsl:template>
</xsl:stylesheet>
Cambiar la estructura del documento y convertir algunos atributos en etiquetas:
Para que el formato fuera como en el enunciado, se tendrían que eliminar las líneas en blanco.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/">
<ciudades>
<xsl:apply-templates />
</ciudades>
</xsl:template>
<xsl:template match="museo">
<ciudad>
<xsl:attribute name="nombre"><xsl:value-of select="@ciudad" /></xsl:attribute>
<pais><xsl:value-of select="@pais" /></pais>
<museo><xsl:value-of select="@nombre" /></museo>
</ciudad>
</xsl:template>
</xsl:stylesheet>
Cambiar la estructura del documento
Para que el formato fuera como en el enunciado, se tendrían que eliminar las líneas en blanco.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/">
<paises>
<xsl:apply-templates />
</paises>
</xsl:template>
<xsl:template match="museo">
<pais>
<xsl:attribute name="nombre"><xsl:value-of select="@pais" /></xsl:attribute>
<ciudad>
<xsl:attribute name="nombre"><xsl:value-of select="@ciudad" /></xsl:attribute>
<museo>
<xsl:attribute name="nombre"><xsl:value-of select="@nombre" /></xsl:attribute>
</museo>
</ciudad>
</pais>
</xsl:template>
</xsl:stylesheet>
Cambiar la estructura del documento
Para que el formato fuera como en el enunciado, se tendrían que eliminar las líneas en blanco.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:strip-space elements="*" />
<xsl:template match="/">
<lugares>
<xsl:apply-templates />
</lugares>
</xsl:template>
<xsl:template match="museo">
<lugar tipo="museo">
<ubicacion nombre="ciudad"><xsl:value-of select="@ciudad" /></ubicacion>
<ubicacion nombre="pais"><xsl:value-of select="@pais" /></ubicacion>
<nombre><xsl:value-of select="@nombre" /></nombre>
</lugar>
</xsl:template>
</xsl:stylesheet>