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 :

Calcul élément de liste


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut Calcul élément de liste
    Bonjour,

    J'ai un problème dans le calcul d'élément de liste

    Exemple qui marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <XX>
      <lib>titre 0</lib>
      <YY>
         <ZZ><lib>titre 1</lib></ZZ>
         <ZZ><lib>titre 2</lib></ZZ>
      </YY>
    </XX>
     
    J'obtiens le résultat :
    1. titre 0
        A. titre 1
        B. titre 2
    Exemple qui ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <XX>
      <lib>titre 0</lib>
      <YY><lib>titre 00</lib></YY>
      <YY>
         <ZZ><lib>titre 1</lib></ZZ>
         <ZZ><lib>titre 2</lib></ZZ>
      </YY>
    </XX>
     
    J'obtiens le résultat :
    1. titre 0
        A. titre 00
        A. titre 1
        B. titre 2
     
    Ce que je voudrai :
    1. titre 0
        A. titre 00
        B. titre 1
        C. titre 2
    Le bout de code de gestion du 2eme niveau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <xsl:template mode="toc" match="ZZ">
    <fo:block>
    <fo:list-block space-before="4mm">
     <fo:list-item>
      <fo:list-item-label end-indent="label-end()">
       <fo:block space-before="0cm" >
        <xsl:number format="A. " count="ZZ"/>
       </fo:block>
                 </fo:list-item-label>
                 <fo:list-item-body start-indent="body-start()">
                   <fo:block>
                       <xsl:apply-templates/>
                   </fo:block>
      </fo:list-item-body>
     </fo:list-item>
    </fo:list-block>
    </fo:block>
    ...
    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:number format="A. " count="YY//lib"/>

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut
    En fait je cherche la commande magique me permettant de compter tous les frères gauche du père du nœud courant ayant une balise lib


    Merci

  4. #4
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Je n'ai pas testé l'expression XPath que j'ai écrite, elle fonctionne ?

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut
    Non,

    par contre j'ai utilisé des variables mais ça me ne semble pas très propre mais ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:variable name="nbYY" select="count(../preceding-sibling::YY/lib)"/>
    <xsl:variable name="nbZZ" select="count(preceding-sibling::ZZ)"/>
    <xsl:variable name="nbr" select="$nbYY + $nbZZ + 1"/>

    Merci

  6. #6
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Ok, je n'ai pas trop le temps là, mais à la rentrée, je testerais
    car je crois qu'il y a une méthode beaucoup plus simple.

Discussions similaires

  1. Calcul élément de trajectoire, dans boucle multiple
    Par baptbapt dans le forum Général VBA
    Réponses: 27
    Dernier message: 02/08/2006, 09h48
  2. Réponses: 3
    Dernier message: 30/06/2006, 09h41
  3. Ajout nouveaux éléments dans liste de choix
    Par Crazyblinkgirl dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/06/2006, 15h17
  4. Suppression élément dans liste
    Par bugmenot dans le forum C
    Réponses: 12
    Dernier message: 06/12/2005, 19h52
  5. [Xul] l'élément tree: liste récursive et RDF
    Par TNorth dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2005, 17h36

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