Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

XML - Les éléments de transformation XSL

Les éléments de transformation XSL Encyclopédie


Les éléments de transformation

Les éléments de transformations permettent de sélectionner et effectuer des opérations sur les éléments du document XML. Leur syntaxe est la suivante :

<xsl:nom [attributs]/>
Remarquez la présence du / indiquant que la balise ne possède pas de balise fermante.

Voici une petite liste des éléments de transformation :

Elément Utilité
xsl:apply-imports Importe une feuille de style importée
xsl:apply-templates Indique au processeur XSL de traiter les éléments enfants directs en leur appliquant les template rules définies dans la feuille XSL. L'attribut select permet de spécifier certains éléments enfants auxquels la transformation doit être appliquée
xsl:attribute-set Permet de créer un attribut à associer à un élément
xsl:attribute-set Permet de nommer une liste d'attributs, pouvant être appliqués à un élément particulier
xsl:template Permet de charger un canevas (template) grâce à son nom.
xsl:choose Structure conditionnelle de type "case" (utilisé en combinaison avec xsl:when et/ou xsl:otherwise)
xsl:comment Crée un commentaire dans l'arbre résultat
xsl:copy Copie le noeud courant dans l'arbre résultat
xsl:copy-of Copie le noeud sélectionné par le modèle dans l'arbre résultat
xsl:decimal-format Déclare un format de nombre décimal
xsl:element Permet de créer un élément avec le nom spécifié
xsl:for-each Permet d'appliquer un canevas à chaque neoud correspondant au modèle
xsl:if Permet d'effectuer un test conditionnel sur le modèle indiqué

xsl:apply-templates

L'élément apply-templates utilisé au sein de la balise <xsl:template/> permet d'appliquer la règle de transformation contenu dans la balise template.

Soit le document XML suivant :

<voiture>

<marque>Volkswagen</marque>

<immatriculation>9999 ZZ 99</immatriculation>

<modele>Golf Match</modele>

<couleur>Bleu clair</couleur>

</voiture>
et la feuille XSL associée :
<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns="http://www.w3.org/TR/REC-html40"
result-ns="">

	<xsl:template match="voiture">

		<Auto>

		<xsl:apply-templates/>

	</Auto>

	</xsl:template >

</xsl:stylesheet>
Cette feuille de style donnera le résultat suivant :
<Auto></Auto>
L'élément apply-templates permet donc uniquement d'appliquer les modifications l'entourant, sans insérer de contenu supplémentaire.

xsl:value-of

Pour insérer le contenu des éléments sélectionnés par la règle de gabarit (template rule), il suffit d'utiliser l'élément value-of, qui permet d'insérer le contenu de la balise sélectionnée.

En reprenant le même document XML que celui présent ci-dessus, il est possible de définir la feuille de style XSL suivante :

	<xsl:template match="voiture">

		<table border="1">

	<tr><th>Voiture</th></tr>

	<tr><xsl:apply-templates/></tr>

	</table>

	</xsl:template >

	<xsl:template match="marque">

		<td><xsl:value-of/></td>

	</xsl:template >

	<xsl:template match="immatriculation">

		<td><xsl:value-of/></td>

	</xsl:template >
Cette feuille de style donnera le résultat suivant :
<table border="1">
<tr><th>Voiture</th></tr>
<td>Volkswagen</td>
<td>9999 ZZ 99</td>
</table>

xsl:apply-imports

L'élément apply-imports utilisé au sein de la balise <xsl:template/> permet d'appliquer les règles de transformation importées dans la feuille XSL par l'intermédiaire de la balise <?xsl:import?>.

Par exemple, dans la feuille XSL suivante, la feuille import.xsl est importée grâce à l'élément <?xsl:import?>,

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet
xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns="http://www.w3.org/TR/REC-html40"
result-ns="">
	<xsl:import href="import.xsl"/>
	<xsl:template match="voiture">
		<Effet>
		<xsl:apply-imports/>
	</Effet>
	</xsl:template >
</xsl:stylesheet>
Voici la feuille de style importée :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/TR/WD-xsl"
xmlns="http://www.w3.org/TR/REC-html40"
result-ns="">
	<xsl:template match="voiture">
		<EffetImporte>
		<xsl:apply-imports/>
	</EffetImporte>
	</xsl:template >
</xsl:stylesheet>

xsl:for-each

Les régles de gabarit permettent grâce à l'élément <xsl:template> de sélectionner les éléments sur lesquels on désire effectuer une transformation. Grâce à l'élément <xsl:for-each>, il est possible de sélectionner des éléments enfants et de leur appliquer une règle de transformation.

La sélection des éléments enfant se fait à l'aide de l'attribut select de la balise <xsl:for-each>, utilisant les patterns XSL au même titre que l'élément <xsl:template>.

<xsl:template match="">
		<EffetImporte>
		<xsl:apply-imports/>
	</EffetImporte>
	</xsl:template >
</xsl:stylesheet>

Trucs & astuces pertinents trouvés dans la base de connaissances

13/12 17h17 Comment lire un fichier .FO/.FOB ? (Bureautique)
XSL Plus d'astuces sur « XSL »

Discussions pertinentes trouvées dans le forum

17/11 13h51 xsl traitement défaut [XSL]traitement par défaut ... Webmastering 23/11 11h23->Zep3k!GnO18
09/11 11h04 ecmascript xsl [ECMAScript]Dans XSL.... Webmastering 09/11 15h50->Zep3k!GnO7
29/08 11h28 xsl acces nom balises XSL acces au nom des balises Webmastering 29/08 16h07->teebo5
15/02 10h06 xml xsl fichier [XML/XSL] tout dans un fichier Webmastering 20/02 09h30->sebsauvage5
22/11 12h08 xsl modifier variables globales [XSL]Modifier variables globales.... Webmastering 22/11 15h54->Zep3k!GnO4
29/11 15h41 xsl navigateur encodage [XSL]Navigateur + encodage... Développement 29/11 16h25->kij_822
15/02 13h47 xsl fonction path [XSL]Fonction pour Path Développement 16/02 16h38->Zep3k!GnO1
30/03 14h41 xsl html mise forme XSL - HTML mise en forme Webmastering 31/03 10h37->cosmocats13
10/01 16h27 xsl accéder fichiers xml XSL : accéder à plusieurs fichiers XML Webmastering 11/01 10h17->elacsap10
05/11 11h17 transformation xsl transformation XSL Webmastering 07/11 16h56->lama9
Discussion fermée Problème résolu XSL Plus de discussions sur « XSL »

Ce document intitulé « XML - Les éléments de transformation XSL » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.