Interfete 4 Web - Carcoteala zilnica despre interfete web: Despre XSL

Despre XSL

XSL este o prescurtare a eXtensible Stylesheet Language, si defineste un standard de descriere a fisierelor XML. Un fisier XSL ofera unui browser informatii despre modul de afisare al lui fisier XML, similar cum pentru HTML se foloseste CSS.
Cel mai simplu mod de utilizare pentru a vedea functionalitatea si utilitatea limbajului este crearea unui fisier XSL ce va contine informatii despre formatarea nuui fisier XML. Pentr a realiza legatura intre cele doua fisier, in fisierul xml ce se doreste formatat se va introduce linia:
, atributul href indicand fisierul de formatare folosit. Browserul se va ocupa in continuare, la deschiderea fisierului XML, de a aplica formatarea descrisa in foaia_de_formatare.xsl.

Cel mai important element din XSLT este templateul, avand sintaxa:

<xsl:template match="element_XPath">
<!--prelucrari-->
<xsl:template>

Elementul match specifica o expresie XPath dupa care se indentifica nodurile ce vor fi prelucrate. In interiorul XSL:template se vor prelua apoi datele dorite din nodul gasit si se va face formatarea lor. Un fisier xsl va avea urmatoarea structura:


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


In locul tagului “xsl:stylesheet” se poate folosi si:
<xsl:transform version="1.0" xsl="http://www.w3.org/1999/XSL/Transform">
</xsl:transform>

Ca urmare a folosirii xsl:template, elementul indicat de match (in exemplul de mai sus fiind vorba de nodul radacina) va fi inlocuit cu continutul

Alte cateva elemente importante sunt:

-> <xsl:value-of> ce va extrage valoare unui nod extras folosind o expresie XPath
-> <xsl:for-each> ce permite extragerea unui set de noduri ce indeplinesc o conditie XPath, fiecare fiind apoi formatat.
-> <xsl:sort> ce va realiza sortarea elementelor, atributul select indicand campul dupa care se va face sortarea, iar atributul order, ordinea finala a elementelor.


Un mic exemplu ce permite afisarea xml-ului generat la exportarea cartilor din libraryul gmail intr-un tabel, sortate dupa titlu este urmatorul:

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

<html>
<body>

<table>
<tr>
<th>ID</th>
<th>URL</th>
<th>Title</th>
<th>Authors</th>
<th>ISBN</th>
<th>Labels</th>
</tr>

<xsl:for-each select="//book">
<xsl:sort order="ascending" select="title"/>
<tr>
<td><xsl:value-of select="id"></xsl:value-of>
</td>
<td><xsl:value-of select="url"></xsl:value-of>
</td>
<td><xsl:value-of select="title"></xsl:value-of>
</td>
<td><xsl:value-of select="contributor"></xsl:value-of>
</td>
<td><xsl:value-of select="//identifier[.//type='ISBN']/value"></xsl:value-of>
</td>
<td>
<xsl:for-each select="labels/label">
<xsl:value-of select="."> ,
</xsl:value-of>
</xsl:for-each></td>
</tr>
</xsl:for-each>
</table>

</body>
</html>
</xsl:template>
</xsl:stylesheet>

Niciun comentariu:

Trimiteți un comentariu