Sample Tables
Author |
Title |
Rider, Henry |
Allan and the Holy Flower |
Rider, Henry |
Allan Quatermain |
Rider, Henry |
Allan's Wife |
Rider, Henry |
The Ancient Allan |
Campan, Jeanne Louise Henriette |
Images from Campan's Marie Antoinette |
Campan, Jeanne Louise Henriette |
Marie Antoinette Volume 01 |
Campan, Jeanne Louise Henriette |
Marie Antoinette Volume 02 |
Casanova, Giacomo |
Memoirs of Casanova Volume 01: Childhood |
Casanova, Giacomo |
Memoirs of Casanova Volume 02: a Cleric in Naples |
Casanova, Giacomo |
Memoirs of Casanova Volume 03: Military Career |
Casanova, Giacomo |
Memoirs of Casanova Volume 04: Return to Venice |
Author |
Title |
Poe, Edgar Allan |
Alone |
Poe, Edgar Allan |
Derniers Contes |
Poe, Edgar Allan |
Edgar Allan Poe's Complete Poetical Works |
Poe, Edgar Allan |
The Fall of the House of Usher |
Annotated Query
%XSLTSTART{id="%WEB%" benchmark="off" debug="off" }%
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table border="1">
<tr><th>Title</th><th>Author</th></tr>
<xsl:apply-templates select="/twiki/web/topic/data/tables/table/row[position()=1]/field[@type='title' and position()=1 and text()='Author']/../../row">
Select each row from all tables that have the first field in the first row equal to 'Title' and of type 'title'. Then apply the template that matchs "row"
<xsl:sort select="field[2]"/>
Sort each row according to the contents of the second child tag named field
</xsl:apply-templates>
</table>
</xsl:template>
<xsl:template match="row">
Executed from the apply-templates tag against each node in the select= list
<xsl:if test="./field[1][@type='data']">
If this is a data field then output it
<tr>
<td><xsl:value-of select="./field[2]"/></td>
<td><xsl:value-of select="./field[1]"/></td>
</tr>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
%XSLTEND%
XmlQuery must be Installed for this demo to work. If %XSLTSTART{}% tag appears XmlQueryPugin is not installed
The above tables has been transformed in 3 ways
1 They have been combined
1 The
Author and
Title columns have been swapped
1 The entries have been sorted by
Title
%XSLTSTART{id="System" benchmark="off" debug="off" }%
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
%XSLTEND%