Introducción a XPath e XSLT

De Wiki do Ciclo ASIR do IES de Rodeira
Saltar á navegación Saltar á procura

Introducción

A finalidade de XSLT (eXtensible Stylesheet Language Transformations) e a conversión de documentos XML en novos documentos XML. O procesador XSLT aplicará as regras indicadas no documento XSLT sobre o documento XML producindo un novo documento XML.

O análise do arquivo XML realízase empregando expresións de busca e selección no documento XML mediante a linguaxe XPath, aplicando posteriormente a transformación indicada. XPath XPath é unha linguaxe empregada para a creación de expresións que permite percorrer e seleccionar elementos nun documento XML. As expresións XPath traballan dun xeito similar ás expresións utilizadas para referirnos a arquivos dentro do sistema de ficheiros. XPath dispón de moitas funcións para manexo de cadeas de caracteres, números e comparación de datas e de tempo, manipulación de nodos, … etc. Para comprender as expresións XPath é imprescindible o manexo da terminoloxía básica: Nodos

Pais

Fillos e Descendentes

Veciños

Antepasados (Ancestors) XSLT Vexamos un exemplo: <?xml version="1.0"?>

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

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

<body>

My CD Collection

<xsl:for-each select="catalog/cd"> </xsl:for-each>
Title Artist
<xsl:value-of select="title"/> <xsl:value-of select="artist"/>
 </body>
 </html>

</xsl:template>

</xsl:stylesheet> O exemplo anterior creará unha táboa en formato HTML a partir dun documento XML describindo información de unha discoteca. Os ficheiros XSLT normalmente se gardan con extensión .xsl, e son procesados de xeito automatico polos navegadores web modernos cando van ligados na cabeceira dun documento XML. A ligazón realízase do seguinte xeito: <?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?> O procesamento da folla de estilos XSLT se realiza mediante plantillas (templates) que se aplican de xeito secuencial sobre a parte da árbore XML seleccionada mediante a etiqueta <xsl:template match='seleccion'>. Dentro de cada plantilla se dispón de varias operacións xsl, sendo as máis importantes as seguintes: <xsl:value-of select='expresion XPath'/> Coloca o resultado da avaliación da expresión XPath <xsl:for-each select='expresion XPath'>......</xsl:for-each> Recorre os nodos que satisfagan a expresión XPath <xsl:sort select='expresion XPath'/> Sempre vai dentro de un xsl:for-each ou un apply-templates, e ordea o recorrido polo indicado na expresión XPath <xsl:if test='expresion'>....</xsl:if> Leva a cabo a sustitución indicada no interior do if, sempre que se cumpla a expresión. <xsl:variable name='nome' select='expresion XPath'/> o resultado da expresión XPath estará dispoñible posteriormente coa referencia $nome.