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] "compacter" une liste


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Points : 23
    Points
    23
    Par défaut [XSLT] "compacter" une liste
    Bonjour,

    je souhaite savoir comment faire pour compacter une liste en fonction d'un attribut des éléments de celle-ci par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ...
    <elementA capacite="100">
       <elementB id="1" vide="false">...</elementB>
       <elementB id="2" vide="true"/>
       <elementB id="3" vide="true"/>
       <elementB id="4" vide="false">...</elementB>
       <elementB id="5" vide="true"/>
       <elementB id="6" vide="false">...</elementB>
    </elementA>
    ...
    qui donnerait apres transformation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    capacité: 100
    n°;contenu;
    1;....;
    2-3;vide;
    4;...;
    5;vide;
    6;....;
    7-100;vide;
    j'avoue avoir un peu de mal avec les schemas XSL...

    si une bonne ame peut m'indiquer une piste à suivre,
    merci d'avance

  2. #2
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut
    Bonjour,

    Alors pour réaliser ce que tu souhaites, il faut que tu crée un template elementB qui dit que si ton attribut vide="false" tu écris l'id puis des points et si vide="true" tu écris l'id et vide.

    un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <xsl:templates match="elementB">
    <xsl:if test="@vide='true'">
    <fo:block>
    <xsl:value-of select="@id"/>;vide;
    </fo:block>
    </xsl:if>
    <xsl:if test="@vide='false'">
    <fo:block>
    <xsl:value-of select="@id"/>;...;
    </fo:block>
    </xsl:if>
    </xsl:templates>
    Voila une base teste si ca marche (impossible pour moi de le faire) si c'est bon inspire toi du code pour le faire de facon dynamique !

    Bon courage et n'hésite pas si tu as un soucis !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 54
    Points : 23
    Points
    23
    Par défaut
    bonjour et merci pour ta réponse,

    actuellement c'est deja ce que je fais (avec un foreach + xpath pour obtenir juste les elements non vide)

    mais ne colle pas tt a fait à ce qu'on me demande de faire
    (a savoir compacter les elements vides)

    pour les éléments vides contigus je dois faire apparaitre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    id element non vide
    [idpremier element vide] - [id dernier element vide]
    id element non vide

  4. #4
    Membre habitué
    Inscrit en
    Mai 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mai 2007
    Messages : 262
    Points : 172
    Points
    172
    Par défaut
    Re,

    Je pense que tu peux faire ca avec count regarde sur Internet ce que ca donne et tu dois pouvoir récupérer dans 2 variables les valeurs de tes id le plus petit et le plus grand.

    Qu'en penses tu ?

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/04/2014, 13h16
  2. Réponses: 4
    Dernier message: 25/07/2012, 01h17
  3. [XSLT] Parcours récursif d'une liste
    Par Tueur_a_gage dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 15/06/2007, 14h05

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