Language XSL
Syntaxe | ||||
---|---|---|---|---|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
||||
<xsl:output | • method= • encoding= • indent= |
text, html, xml jeu de caractères yes ou no |
fonctions | ||||
---|---|---|---|---|
<xsl:text [disable-output-escaping="yes"]> </xsl:text > | avec l'option génère intégralement le texte produit entre les crochets | |||
<xsl:value-of select="@naissance"/> | affiche la valeur de l'attribut | |||
<xsl:template match="*|/"> <xsl:apply-templates/> </xsl:template> |
Récursivité sur les éléments : applique les template pour les nœuds fils de la racine et de chaque élément. | |||
<xsl:template match="text()|@*"> <xsl:value-of select="."/> </xsl:template> |
Affichage du texte des éléments et des valeurs d'attributs | |||
<xsl:template match="processing-instruction() |comment()"/> | ignore les commentaires et les processing-instructions | |||
<xsl:strip-space elements="book"/> | L'instruction strip-space permet de préciser, pour un type d'élément donné, d'ignorer les éléments text vides. | |||
<xsl:preserve-space elements="truc"/> | L'instruction preserve-space permet de préciser, pour un type d'élément donné, les élèments à ne pas ignorer. | |||
<xsl:for-each select="pattern"> | une boucle for eatch locale |
<xsl:for-each select="groupes/groupe"> <tr> <td><xsl:value-of select="nom"/></td> <td><xsl:value-of select="guitare"/></td> </tr> </xsl:for-each> |
||
<xsl:if test="pattern"> transformations </xsl:if> |
<xsl:template match="groupe"> <xsl:if test="nom = 'The Police' "> <xsl:text>Actu : le groupe </xsl:text> <xsl:value-of select="./nom"/> <xsl:text> se reforme !!!</xsl:text> </xsl:if> </xsl:template> |
|||
<xsl:choose> plusieurs transformations xsl:when [transformation
xsl:otherwise] </xsl:choose>
<xsl:when test="prédicat"> transformations </xsl:when> <xsl:otherwise> transformations </xsl:otherwise> |
Les transformations xsl:when ou xsl:otherwise s'appliquent au même noeud courant. Dès qu'une transformation xsl:when ou une transformation xsl:otherwise s'applique, la transformation xsl:choose se termine. |
<xsl:template match="groupe"> <xsl:choose> <xsl:when test="nom = 'The Police' "> <xsl:text>Actu : le groupe </xsl:text> <xsl:value-of select="./nom"/> <xsl:text> se reforme !!!</xsl:text> <br> </xsl:when> <xsl:otherwise> <xsl:text>Hélas le groupe </xsl:text> <xsl:value-of select="nom"/> <xsl:text> n'est plus.</xsl:text> <br> </xsl:otherwise> </xsl:choose> |
||
<xsl:number [value='pattern'][level="single|multiple|any"][count="pattern"] [format="chaine"] [from='pattern']/> | Insère en "output" un numéro pour le nœud courant | |||
<xsl:sort [select="pattern"] [data-type="text|number"] [order="ascending| descending"]/> | xsl:sort doit figurer juste après xsl:apply-templates ou xsl:for-each ou xsl:sort. Le tri s'effectue sur les valeurs du pattern spécifié. Peuvent être précisés : ordre lexicographique (par défaut) ou numérique, ordre ascendant (par défaut) ou descendant. Si l'on souhaite effectuer un ordre numérique, mentionnez data-type=''number'' en attribut. | |||
<xsl:call-template name="hello"/> | appel d'un template défini | <xsl:template name="hello"> Hello world ! </xsl:template> | ||
<xsl:with-param> | La valeur de l'attribut name de |
<xsl:template match="/"> <html> <body> <xsl:for-each select="catalog/cd> <xsl:call-template name="show_title"> <xsl:with-param name="title" select = "title" /> </xsl:call-template> </xsl:for-each> </body> </html> </xsl:template> <xsl:template name = "show_title" > <xsl:param name = "title" /> <p>Title: <xsl:value-of select = "$title" /></p> </xsl:template> |
||
<xsl:variable name="couleur" select="'rouge'" /> | L'utilisation des quotes à l'intérieur des guillemets, pour décrire la valeur de l'attribut est select, est importante. En effet la valeur de l'attribut select est une expression XPath : pour spécifier que la valeur est une chaîne et non un chemin de localisation, on doit donc soit utiliser des quotes à l'intérieur de guillemets ou des guillemets à l'intérieur des quotes. |
<xsl:variable name="header"> <tr bgcolor="#9acd32"> <th>Title</th> <th>Artist</th> </tr> </xsl:variable> <xsl:template match="/"> <html> <body> <table border="1"> <xsl:copy-of select="$header" /> <xsl:for-each select="catalog/cd"> |
||