X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=xpi%2Fxpi_05.xhtml;fp=xpi%2Fxpi_05.xhtml;h=0000000000000000000000000000000000000000;hb=6ad5a39df30fc67494ecbc37babadbf58a213fda;hp=aa49a92f2b361e178a30b48023302d8040cd08c6;hpb=5ab05e8da9f56a68ede3a05dbce2fccf9f44b715;p=hacks%2FsimpleWebSlides.git diff --git a/xpi/xpi_05.xhtml b/xpi/xpi_05.xhtml deleted file mode 100644 index aa49a92..0000000 --- a/xpi/xpi_05.xhtml +++ /dev/null @@ -1,410 +0,0 @@ - - - -
-On peut récupérer des nÅuds texte dans le document source au - moyen de la balise <xsl:value-of select="xpath - expr"/>. L'expression xpath expr est - évaluée et convertie en chaîne de caractères en suivant - les conversions d'XPath (voir cours 3). -
-La balise <xsl:for-each select="xpath expr">
- corp de boucle
- </xsl:for-each>
-
évalue le corp de la boucle pour chaque nÅud renvoyé par
- l'expression xpath expr. à chaque itération
- le nÅud considéré devient le nÅud contexte (i.e. celui
- renvoyé par l'axe self::)
On peut modifier l'ordre dans lequel les éléments sont
- parcourus par une boucle xsl:for-each en utilisant
- l'élément
-]]>
qui n'est valide que comme fils d'un xsl:for-each
- ou xsl:apply-templates
On peut évaluer conditionnellement une portion de code XSLT
- en la plaçant dans une balise:
- ...
- ]]>
Le résultat de l'expression est interprété
- comme un booléen (selon les règles de conversion d'XPath). S'il
- vaut vrai, le corp du xsl:if est exécuté.
On peut écrire plusieurs portions de code, gardées par des
- conditions distinctes
- en les plaçant dans une balise:
-
- Les conditions xsl:when sont évaluées dans l'ordre et
- le corp de la première valant vrai est exécuté. Si aucune
- condition n'est vérifiée, le corp de
- l'instruction xsl:otherwise est exécuté.
-
On réutilise (encore) le fichier de recette:
-
-
-Tiramisú
-
- mascarpone
- oeufs
- sucre
- café
- biscuits
-
-2h
-
- Séparer les blancs des jaunes
- â¦
- â¦
-
-
-]]>
-
-
-
-
- Ingrédients du ]]><xsl:value-of select="descendant::title" />
-
-
- Ingrédients du ]]><xsl:value-of select="descendant::title" />
-
- ]]><xsl:for-each select="descendant::ingredient">
- <xsl:sort select="child::text()" /> ]]><xsl:value-of select="child::text()" />
- ]]></xsl:for-each>
- Ãtape]]><xsl:if test="count(descendant::e) >1">s</xsl:if>
-
- ]]><xsl:apply-templates select="descendant::e">
- <xsl:sort select="@num" data-type="number"/>
- </xsl:apply-templates>
-
-
-
-
-
-
-
-]]>
- Il est fréquent de vouloir choisir dynamiquement les noms - des éléments. Par exemple :
-
-
-
-
-
- .... code complexe pour calculer le texte ....
-
-
-
-
- ]]>
-
-code incorrect : les balises <b>
-et <i> ne sont pas bien parenthésées
On peut dupliquer le code de manière à respecter les balises - ouvrantes/fermantes :
-
-
-
- .... code complexe pour calculer le texte ....
-
-
-
-
- .... code complexe pour calculer le texte ....
-
-
- ]]>
-
-Inélégant et non-maintenable : si on a 10 cas, on copie cole
- 10 fois le code complexe.
On a besoin :
-Problème : XPath ne permet pas de définir des variables
Comme dans tout langage, on veut pouvoir évaluer une - expression et donner un nom au résultat pour - pouvoir le réutiliser plusieurs fois. En XSLT, on utilise la - balise xsl:variable :
-
-
- Le document contient éléments foo.
-]]>
-On peut aussi donner du contenu à l'élément xsl:variable, - pour définir la valeur de la variable :
-
-
- b
- i
-
- ]]>
-
-Les variables sont non-modifiables une fois définies. Elles
- sont visibles par tous les éléments suivant la balise
- fermante </xsl:variable> se trouvant avant la
- fermeture de l'élément contenant la variable. Exemple :
-
-
-
-
-
- texte sur
- :
-
-
-
-
-]]>
-
-On peut utiliser les instructions xsl:element - et xsl:attribute pour créer des éléments et des attributs - dont le nom est calculé dynamiquement : -
-
- baz
- ...
-
-]]>
-produira dans le document de sortie :
-
- ...
-
-]]>
-Ã part les attributs select et test de
- certaines balises XSLT, les autres attributs sont des chaines de
- caractères. On peut cependant intégrer des expressions XPath au
- moyen d'accolades { }
-
Le site!]]>
-
- Dans le code ci-dessus, href étant un attribut non - interprété (ce n'est pas une balise XSLT), le chemin XPath - apparaîtra dans le résultat (ce qu'on ne veut pas). On peut écrire - :
-Le site!]]>
-
-
-
- b
- i
-
-
-
-
- .... code complexe pour calculer le texte ....
-
-]]>
-Attention : il faut écrire {$nombalise} sinon le
- processeur XSLT essayera de créer un
- élément <$nombalise> ce qui est illégal (et
- provoquera une erreur)
On peut placer une balise xsl:output dans la balise racine - de la feuille de style (xsl:stylesheet)
-
-]]>
-