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 :

Compter des élements [XSL-FO]


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut Compter des élements
    Bonjour,

    J'ai un fichier XML du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     ...............
    <A>
       <B><C><lib>xxxxxx</lib></C></B>
       <B><C><lib>yyyyy</lib></C></B>
       <B><C><lib>zzzz</lib></C></B>
    </A>
    Je voudrai sur chaque lib connaitre le nombre de preceding-sibling
    voilà mon code :
    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
    22
    23
    24
     
    <xsl:template mode="toc" match="A/B/C">
    <xsl:choose>
    <xsl:when test="lib">
    	<fo:block>
    		<fo:list-block>
    			<fo:list-item>
    				<fo:list-item-label end-indent="label-end()">
    					<fo:block space-before="0cm">
    						<xsl:variable name="nb-lib" select="count(preceding-sibling::lib)"/>
    						<xsl:variable name="nbr" select="$nb-prcitem + 1"/>
    						<xsl:number format="(1) " value="$nbr"/>
    					</fo:block>
    				</fo:list-item-label>
    				<fo:list-item-body start-indent="body-start()">
    					<fo:block>
    						<xsl:apply-templates mode="toc" select="lib" />
    					</fo:block>
    			</fo:list-item-body>
    			</fo:list-item>
    		</fo:list-block>
    	</fo:block>
    </xsl:when>
    </xsl:choose>
    Je trouve toujours 0 pour le count ?


    Merci de votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Dans ton exemple, c'est normal.

    - Les <lib> ne sont pas des frères des <C>, ce sont des enfants des <C>. Ils sont en-dessous.
    - Les <C> et les <lib> n'ont d'ailleurs pas de frère du tout, ils sont tous fils uniques.

    zéro est donc le compte juste.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut
    Comment puis je compter pour obtenir
    1 pour premier lib
    2 pour deuxième lib
    3 pour troisième lib

    sachant que lorsque je rencontre un nouveau A je veux recompter depuis 1

    merci

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Alors le plus simple... N'est pas très simple.
    Il faudrait compter :
    - Pour le parent, <B>,
    - pour ses frères précédents,
    - les descendants <lib> qu'ils contiennent.

    Syntaxe pour :
    - obtenir le parent : .. ;
    - obtenir les frères précédents : /preceding-sibling::B ;
    - obtenir les descendants <lib> : //lib
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut
    Merci c'est OK

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compter des élements d'un vecteur
    Par stephane2000 dans le forum Signal
    Réponses: 3
    Dernier message: 09/04/2013, 09h01
  2. [langage] compter des caracteres dans une chaine
    Par louisis dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2004, 22h39
  3. [LG]Compter des Lignes...
    Par Loceka dans le forum Langage
    Réponses: 7
    Dernier message: 04/03/2004, 20h29
  4. [SQL] Compter des champs indépendement l'un de l'autre
    Par rippey dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 29/10/2003, 15h35
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

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