Introducción a XPath e XSLT
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.