XSLT - Soluciones (2)

Se ofrecen a continuación unas posibles soluciones de los ejercicios XSLT (2). Estos ejercicios se pueden resolver de varias maneras.

XSLT (2) - Ejercicio 1

XSLT (2) - Ejercicio 1-1 - Solución

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>

XSLT (2) - Ejercicio 1-2 - Solución

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>

XSLT (2) - Ejercicio 1-3 - Solución

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>

XSLT (2) - Ejercicio 1-4 - Solución

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>

XSLT (2) - Ejercicio 1-5 - Solución

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>

XSLT (2) - Ejercicio 2

XSLT (2) - Ejercicio 2-1 - Solución

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>

XSLT (2) - Ejercicio 2-2 - Solución

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>

XSLT (2) - Ejercicio 2-3 - Solución

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>

XSLT (2) - Ejercicio 2-4 - Solución

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>

XSLT (2) - Ejercicio 2-5 - Solución

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>