|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
XML - Les éléments de transformation XSLLes éléments de transformationLes é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 :
xsl:apply-templatesL'é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-ofPour 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"> xsl:apply-importsL'é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-eachLes 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
Discussions pertinentes trouvées dans le forum
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||