11.07.2015 Views

Référence XPath/XSLT - IA

Référence XPath/XSLT - IA

Référence XPath/XSLT - IA

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Die Matthäus-PassionJohann-Sebastian Bach1. (Evangelist, Jesus): Da Jesus diese Rede vollendethatte2. Choral: Herzliebster Jesu, was hast du verbrochen3. (Evangelista): Da nun Jesus war zu Bethanien4. (Evangelista, Jesus): Da das Jesus merkte5. (Evangelist, Jesus, Judas): Und er kam und fand sieaber schlafend6. Aria: So ist mein Jesus nun gefangenLes lignes sont numérotées de 1 à 6, ce qui correspond à la position de chaque séquence dans le contextede l’expression <strong>XPath</strong> de la boucle xsl:for-each. Pour obtenir le « bon » numéro pour chaque séquenceil ne faut pas utiliser la fonction position() mais compter les prédécesseurs (axe preceding) de type S etajouter 1 à la valeur obtenue :On obtient alors le résultat suivant :Exemple .23 Number1c.txt : Résultat obtenu en comptant les prédécesseursDie Matthäus-PassionJohann-Sebastian Bach2. (Evangelist, Jesus): Da Jesus diese Rede vollendethatte3. Choral: Herzliebster Jesu, was hast du verbrochen6. (Evangelista): Da nun Jesus war zu Bethanien8. (Evangelista, Jesus): Da das Jesus merkte9. (Evangelist, Jesus, Judas): Und er kam und fand sieaber schlafend10. Aria: So ist mein Jesus nun gefangenUne autre possibilité est d’utiliser l’attribut count à la place de l’attribut value dans l’instructionxsl:number :L’attribut count indique qu’on veut compter les nœuds de type S qui se trouvent avant le nœud cible(la plupart du temps le nœud cible correspond au nœud contexte, mais ce n’est pas toujours le cas commenous allons le voir plus loin). Il existe deux possibilités pour choisir les nœuds qui se trouvent avant :1. On veut compter les nœuds précédents qui ont le même père. Ceci correspond à l’utilisation de l’axepreceding-sibling et se traduit par la valeur single pour l’attribut level.2. On veut compter les nœuds précédents à n’importe quel niveau ce qui est le cas dans notre exemple.Ceci se traduit par l’utilisation de l’axe preceding ou, d’une manière équivalente, par la valeurany pour l’attribut level.Remarque : Comme pour les axes preceding et preceding-sibling, les nœuds de type Attr ouNamespace sont ignorés pendant la numérotation.La valeur single pour l’attribut level permet d’obtenir une numérotation non plus absolue, mais relativeà d’autres éléments. Dans le document Number1d.txt chaque séquence est numérotée par sa positiondans la plage.Exemple .24 Number1d.txt : Séquences numérotées à l’intérieur de chaque plageDie Matthäus-PassionJohann-Sebastian Bacha. (Evangelist, Jesus): Da Jesus diese Rede vollendethatte21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!