Flux rss
XSLT

Les éléments de transformation XSL

XLink/XPointer
Bookmark Ajouter aux favoris / Partager

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>


Dernière modification le mardi 14 octobre 2008 à 17:40:30.Ce document intitulé « Les éléments de transformation XSL » issu de 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.
Transformation XSL Je voudrais appliquer une transformation XSL à un fichier XML pour en faire un fichier CSV. Mon problême : Je fais un xsl:for-each pour écrire chacune de mes lignes ; comment mettre des retours à la ligne à la fin ? Toute idée est bonne à prendre.... www.commentcamarche.net/forum/affich-29636-transformation-xsl
Xsl : trier et grouper des éléments XSL : for-each : afficher un élément une fois Bonjour à tous, je cherche à afficher le contenu d'un fichier xml qui contient des rubriques et des articles, comme suit : 5... www.commentcamarche.net/forum/affich-2593176-xsl-trier-et-grouper-des-elements
Transformations de XML avec XSLT XSLT et XSL/FO XSL (eXtensible Stylesheet Language) possède deux composantes : XSLT, eXtensible Stylesheet Transformation XSL/FO, eXtensible Stylesheet formatting le langage de transformation des données (XSLT, eXtensible Stylesheet... www.commentcamarche.net/contents/xml/xmlxslt.php3
Transformer un fichier Word (.doc) en PDFTransformer en fichier PDF un fichier Microsoft Word (.doc) Rien de plus simple ! Ouvrez votre fichier *.doc avec OpenOffice.org Réglez éventuellement la mise en page par le menu Format / Page... Dès lors, 2 solutions pour transformer en... www.commentcamarche.net/faq/sujet-5731-transformer-un-fichier-word-doc-en-pdf
Transformer un fichier Microsoft Excel (.xls) en PDFTransformer en fichier PDF un fichier Microsoft Excel (.xls) Rien de plus simple ! Ouvrez votre fichier *.xls avec OpenOffice.org Réglez éventuellement la mise en page par le menu Format / Page... Dès lors, 2 solutions pour transformer en... www.commentcamarche.net/faq/sujet-5734-transformer-un-fichier-microsoft-excel-xls-en-pdf
[Gimp][Retouche photo] Supprimer des éléments d'une imageL'outil de clonage est utile pour supprimer des éléments d'une photo. Par exemple pour éliminer quelqu'un d'une photo, supprimer un avion dans le ciel ou les défauts d'une photo. Cet outil est présent dans Photoshop mais également dans de nombreux... www.commentcamarche.net/faq/sujet-3228-gimp-retouche-photo-supprimer-des-elements-d-une-image
XML->XSL->CSV (Résolu)Bonjour, J'ai un petit problème pour transformer un fichier XML en CSV avec XSL J'ai un fichier XML qui a ce format : X1 www.commentcamarche.net/forum/affich-3538212-xml-xsl-csv
[XML/XSLT/JavaScript] problème de transformatBonjour, J'ai quelques problèmes en essayant de transformer mon XML externe via un XSL et d'afficher le résultat dans un bloc (avec la fonction innerHTML). var req; var req2; var xml; var xsl; function affichcat(url) { if... www.commentcamarche.net/forum/affich-2001967-xml-xslt-javascript-probleme-de-transformat
Transformation xml en pdf avec xsl-fo (Résolu)Salut, Je veux faire une application php qui génère des documents xml. A partir de ces documents xml, j'utilise xsl pour créer des documents xsl:fo. A partir de ces documents xsl:fo, j'utilise fop pour générer du pdf . Comment installer l'apache Fop... www.commentcamarche.net/forum/affich-2924722-transformation-xml-en-pdf-avec-xsl-fo
Télécharger Adobe Photoshop ElementsAdobe Photoshop Elements est différent de son ainé Photoshop du fait qu’il est destiné à satisfaire le grand public contrairement à ce dernier qui réclame la prise en main d’un professionnel. Parfait à l’écran et sur le papier, ce logiciel a tout pour... www.commentcamarche.net/telecharger/telecharger-34056743-adobe-photoshop-elements
Télécharger Transform XP to VistaSi vous cherchez quelque chose de nouveau pour personnaliser l'interface de votre Windows XP, mais que vous n'avez pas le temps pour des tests. Ce thème est fait pour vous. Transform Xp to Vista est un pack complet pour la personnalisation de votre... www.commentcamarche.net/telecharger/telecharger-34056173-transform-xp-to-vista
Télécharger Waha! Transformer LiteWaha! Transformer Lite est un convertisseur de données. Il permet d’extraire et de convertir n’importe quelle base de données en définissant les paramètres et cela sans programmation. De plus, l’utilisateur pourra créer des tâches... www.commentcamarche.net/telecharger/telecharger-34058120-waha-transformer-lite
Transformers: AutobotsOther Names:Transformers: The Game -- Autobots, The Transformers: The Movie -- The Game: Autobots (2007), Genre:Action, Développeur:Vicarious Visions, Page web du produit:Anglais www.commentcamarche.net/guide/908447-transformers-autobots
Transformers: The GameOther Names:The Transformers: The Movie -- The Game (2007), Genre :Action, Nb. de joueurs hors-ligne:1, Jeu en ligne, Développeur:Savage Entertainment, Divers:Online Play via Infrastructure Mode, Page web du produit:Anglais www.commentcamarche.net/guide/902274-transformers-the-game
Mise en page de XML avec XSLIntroduction à XSL XML est un langage de structuration des données, et non de représentation des données. Ainsi XSL (eXtensible StyleSheet Language) est un langage recommandé par le W3C pour effectuer la représentation des données de documents XML.... www.commentcamarche.net/contents/xml/xmlxsl.php3
DHTML - Animer des élémentsLe principe L'animation des éléments présents sur une page Web se fait en modifiant leur propriété (position, hauteur, largeur, visibilité, z-index, ...) ou en utilisant leur méthodes (fonctions associées à un élément). Cela ne peut se faire qu'à... www.commentcamarche.net/contents/dhtml/dhtmlanim.php3