FANDOM


XML de trabajoEditar

Éste es el documento XML con el que trabajaremos en este capítulo:

<?xml version="1.0" encoding="iso-8859-15"?>
<?xml-stylesheet type="text/xsl" href="brazil.xsl"?>
<pelicula>
  <direccion>
    <director nombre="Terry" apellidos="Gilliam"/>
  </direccion>
  <produccion>
    <productor nombre="Patrick" apellidos="Cassavetti"/>
    <productor nombre="Arnon" apellidos="Milchan"/>
  </produccion>
  <guion>
    <guionista nombre="Terry" apellidos="Gilliam"/>
    <guionista nombre="Tom" apellidos="Stoppard"/>
    <guionista nombre="Charles" apellidos="McKeown"/>
  </guion>
  <reparto>
    <interprete nombre="Jonathan" apellidos="Pryce"
      papel="protagonista"/>
    <interprete nombre="Robert" apellidos="De Niro"
      papel="protagonista"/>
    <interprete nombre="Kim" apellidos="Greist"
      papel="protagonista"/>
    <interprete nombre="Michael" apellidos="Palin"
      papel="secundario"/>
    <interprete nombre="Ian" apellidos="Holm"
      papel="secundario"/>
    <interprete nombre="Bob" apellidos="Hoskins"
      papel="secundario"/>
  </reparto>
  <esloganes>
    <eslogan>
      Vuelos fantásticos.
      La pesadilla de la realidad.
      Ataques terroristas.
      Compras a media noche.
      Amor verdadero.
      Y fontanería creativa.
    </eslogan>
    <!-- Hacen falta más eslóganes. -->
  </esloganes>
</pelicula>

Posición absolutaEditar

Basándonos en el documento XML anterior, es posible acceder al eslogan de la película así:

<?xml version="1.0"?>

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

<xsl:template match="/">

<xsl:value-of select="/pelicula/esloganes/eslogan"/>

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

Como especificamos la ruta completa de acceso al elemento que nos interesa, se trata de una ruta absolulta.

Posición relativaEditar

Es posible especificar una ruta relativa en lugar de una absoluta:

<?xml version="1.0"?>

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

<xsl:template match="/pelicula">

<xsl:value-of select="esloganes/eslogan"/>

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

Nodo raízEditar

Si lo deseas, también puedes obtener el nodo raíz:

<?xml version="1.0"?>

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

<xsl:template match="/">

<xsl:value-of select="/"/>

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

Instrucciones de procesoEditar

Además de extraer partes de un documento XML, también es posible obtener instrucciones de proceso, como se puede comprobar con el siguiente ejemplo:

<?xml version="1.0"?>

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

<xsl:template match="/">

<xsl:value-of select="processing-instruction()"/>

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

AtributosEditar

El nivel de control sobre el documento XML que se puede lograr utilizando XPath llega incluso hasta los atributos del mismo:

<?xml version="1.0"?>

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

<xsl:template match="/">

<xsl:value-of select="/pelicula/direccion/director/@nombre"/>

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

TextoEditar

¿Necesitas el texto asociado a un elemento de un documento XML? Mira este ejemplo:

<?xml version="1.0"?>

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

<xsl:template match="/">

<xsl:value-of select="/pelicula/esloganes/eslogan/text()"/>

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

ComentariosEditar

También es posible tener acceso a los comentarios de un documento XML:

<?xml version="1.0"?>

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

<xsl:template match="/">

<xsl:value-of select="/pelicula/esloganes/comment()"/>

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

FuncionesEditar

Existen funciones que se pueden utilizar desde para obtener información muy interesante sobre los documentos XML. Por ejemplo, se puede saber cuántos elementos del mismo tipo están presentes. En este caso, cuántos intérpretes:

<?xml version="1.0" encoding="iso-8859-15"?>

<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  version="1.0">

<xsl:template match="/">

<b>Intérpretes: </b>
<xsl:value-of select="count(/pelicula/reparto/interprete)"/>

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

Enlaces interesantesEditar

Si deseas saber más sobre XPath, visite la página en la que se describe esta norma.

El contenido de la comunidad está disponible bajo CC-BY-SA a menos que se indique lo contrario.