IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] Listes numérotées qui se suivent


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut [XSLT] Listes numérotées qui se suivent
    Soit, par exemple le fichier XML suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
    <list>
    <div style="margin-left:40px"><item>element 1</item></div><div style="margin-left:40px"><item>element 2</item></div><div style="margin-left:40px"><item>element 3</item></div></list>
    ...
    <para>
    <div style="margin-left:40px"><list></div><div style="margin-left:40px"><div style="margin-left:40px"><item>element 4</item></div></div><div style="margin-left:40px"><div style="margin-left:40px"><item>element 5</item></div></div><div style="margin-left:40px"></list></div></para>
    ...
    Est-ce que ce serait possible en XSL de faire en sorte d'obtenir le résultat suivant :

    1. element 1
    2. element 2
    3. element 3
    ...
    4. element 4
    5. element 5

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    J'ai oublié de préciser que la l'élement list a un attribut (par exemple att) qui peut prendre comme valeur : init ou cont
    init : recommence le chiffrage à 1
    cont : on continue le chiffrage de la dernière liste

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    quand tu rencontre "item" tu fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:number count="item" format="1"/>
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  4. #4
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    merci pour ta réponse mais ca ne continue pas à incrémenter

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    si "init", tu ajoute un attribut from par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:number count="item" format="1" from="parent::list"/>
    tu peux aussi jouer avec l'attribut level= (any ou multiple etc...)
    Ce n’est pas en cassant le thermomètre que vous ferez baisser la température

  6. #6
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Je pense avoir trouvé une solution mais j'aurais besoin de savoir calculer le nombre de "list/@att=cont" qui précèdent le "list/@att=cont" courant jusqu'au premier "list/@att=init" rencontré.

    Explication:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <list att="init">
    </list>
    <list att="cont">
    </list>
    <list att="init">
    </list>
    <list att="cont">
    </list>
    <list att="cont">
    </list>
    Si l'élement list courant est le dernier, alors il possède 1 "list/@att=cont" qui le précède.
    En faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preceding::list[@att='cont']
    j'obtiens tous les précédents (normal) mais je voudrais qu'il s'arrête au premier init rencontré

Discussions similaires

  1. Liste déroulante qui ne fonctionne pas -_-'
    Par Shekhmet dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2006, 12h12
  2. formulaire liste deroulante qui redirectionne
    Par gandoulfe dans le forum Langage
    Réponses: 3
    Dernier message: 08/03/2006, 18h16
  3. [xslt]liste
    Par schnecke dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/11/2005, 11h08
  4. Listes numérotées
    Par brazza dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 01/09/2005, 03h22
  5. [AWK] récupération de lignes qui se suivent
    Par PtiNico dans le forum Linux
    Réponses: 2
    Dernier message: 12/04/2005, 19h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo