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 :

Probleme de dénombrement (precedent-sibling ?)


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 36
    Points
    36
    Par défaut Probleme de dénombrement (precedent-sibling ?)
    salut, je rencontre un probleme pour compter le nombre d'élément présent dans une sous balise. J'ai tout essayé, mais ca ne me renvoi pas ce que je veux, voila la structure du fichier xml :


    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <france>
    	<region>
    		<departement nom="aaa">
    			<ville>
    				<nom></nom>
    				<pop></pop>
    				<taille></taille>
    			</ville>
    			<ville>
    				<nom></nom>
    				<pop></pop>
    				<taille></taille>
    			</ville>		
    		</departement>			
    	</region>
     
    	<region>
    		<departement nom="xxx">
    			<ville>
    				<nom></nom>
    				<pop></pop>
    				<taille></taille>
    			</ville>
    			<ville>
    				<nom></nom>
    				<pop></pop>
    				<taille></taille>
    			</ville>		
    		</departement>
     
    		<departement nom="zzz">
    			<ville>
    				<nom></nom>
    				<pop></pop>
    				<taille></taille>
    			</ville>
     
    			<ville>
    				<nom></nom>
    				<pop></pop>
    				<taille></taille>
    			</ville>		
    		</departement>
    	</region>
    </france>
    en étant sur la balise <ville> je voudrais la position de chaque ville par rapport a la région. Ca me ferait une numérotation du type 1, 2, 3 ... et cela pour chaque <region>.

    Le probleme que j'ai c'est que actuellement ca me fait 1, 2, 3 ... 10 ... 50... et cela sans tenir compte du découpage en <region>

    Merci de votre aide, j'ai passé le weekend dessus mais sans résultat.

  2. #2
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    en groupant par region + departement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:for-each select="region">
      <xsl:for-each select="departement">
        <xsl:value-of select=count(ville)"/>
      </xsl:for-each>
    </xsl:for-each>
    sans grouper par departement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:for-each select="region">
        <xsl:value-of select=count(//ville)"/>
    </xsl:for-each>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    merci pour cette réponse.
    Je suis donc obliger de passer par une boucle ? Il n'existe pas d'expression x-path pour faire l'équivalent ?

  4. #4
    Membre éclairé Avatar de luta
    Inscrit en
    Novembre 2003
    Messages
    1 038
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 038
    Points : 786
    Points
    786
    Par défaut
    tu peux faire un template...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:template match="regions"/>

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    ca ne fait pas ce que je pensais en fait. J'ai fait un dessin car j'arrive pas bien a expliquer :

    je suis placé au niveau rosé (par des apply-templates) et je voudrais dans ces cases rosées, obtenir le numéro qui est dans la case parent.
    J'arrive a avoir les numéros mais le probleme en changeant de branche la numérotation continue a la suite et ça je ne veux pas.

    Je voudrais que quand on change de branche la numérotation reparte a 1 :



    je précise ces numéro ne sont pas des attribut, ni meme présent dans le code XML. Je veux les obtenir en faisant un count.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    j'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count(../preceding-sibling::xxx)
    tout simplement. Mais j'ai galéré deux jours... Merci a ceux qui ont essayé de m'aider.

  7. #7
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Ca devrait le faire aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <xsl:template match="ville">
      ...
      <xsl:number level="single" from=".." count="ville"/>
      ...
    </xsl:template>

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

Discussions similaires

  1. XPath Différence entre preceding et preceding-sibling
    Par FwRamaro dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 16/07/2008, 11h15
  2. [XSLT] preceding-sibling dans un sous ensemble
    Par ddams dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 20/02/2007, 17h36
  3. [XSLT] Compteur dans un "preceding-sibling::"
    Par loloajax dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 20/11/2006, 14h12
  4. [XSLT] Preceding sibling
    Par tommey dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 18/08/2006, 19h02
  5. [xml] Xpath besoin d'explication sur preceding-sibling::
    Par ekmule dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 10/01/2006, 09h32

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