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] Découpage année / mois


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 77
    Points : 35
    Points
    35
    Par défaut [XSLT] Découpage année / mois
    Bonjour à tous,

    alors j'ai une fonctionnalité à implémenté avec une feuille XSL qui me parait assé compliqué (enfin pour moi du moins )

    J'ai en entré un fichier XML avec une suite d'info comme cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <Filter_Param name="DATE_STRING" id="DATE_STRING" type="flat">
                                <Category id="01/01/2008" label="01/01/2008" depth="1" nb="1"/>
                                <Category id="02/01/2008" label="02/01/2008" depth="1" nb="1"/>
                                <Category id="02/05/2008" label="02/05/2008" depth="1" nb="1"/>
                                <Category id="03/01/2008" label="03/01/2008" depth="1" nb="1"/>
                                <Category id="05/01/2007" label="05/01/2007" depth="1" nb="1"/>
                                <Category id="05/03/2008" label="05/03/2008" depth="1" nb="1"/>
                                <Category id="07/02/2008" label="07/02/2008" depth="1" nb="1"/>
                                <Category id="08/06/2005" label="08/06/2005" depth="1" nb="1"/>
                                <Category id="08/12/2005" label="08/12/2005" depth="1" nb="1"/>
                                <Category id="09/12/2004" label="09/12/2004" depth="1" nb="1"/>
                                <Category id="11/12/1979" label="11/12/1979" depth="1" nb="1"/>
                                <Category id="11/12/2007" label="11/12/2007" depth="1" nb="1"/>
                            </Filter_Param>
    De là je dois en déduire la liste suivante :

    2008
    - janvier (3)
    - février (1)
    - mars (1)
    - mai (1)
    2007
    - janvier (1)
    - décembre (1)
    2005
    - juillet (1)

    etc

    Autrement dit faire un découpage par année, et ensuite compté par mois pour chaque année.

    Je vous avouerais franchement que je ne sais pas trop par ou commencé, à votre avis c'est difficile à implémenter ? Pourriez vous me donner des pistes svp

    Merci

  2. #2
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    rien de bien compliquer
    c'est juste du XSL .... va lire un peu ici
    tu as besoin de connaitre XPATH et XSLT
    mais franchement si tu as des docs XML bien concu ( ce qui parrait etre le cas ici ) c'est vraiment un jeu d enfant ....


    exemple ici en gros tu feras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:for-each select="//Category ">
    <xsl:value-of select="./@label>
    </xsl:for-each>
    voila apres tu aura des traitement sur chaine de caractere a faire si tu veux que l année ou le mois ... ou si tu peux je te conseille de modifier ton doc XML avec comme attributs annee, mois, jour

    comme ca ca sera easyDoing
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 66
    Points : 53
    Points
    53
    Par défaut
    Oui c'est tout à fait faisable avec une feuille de style XSLT.
    Si tes id sont tous de la forme jj/mm/aaaa, il me semble que tu peux extraire le mois et l'année de la manière suivante (à vérifier):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:for-each select="//Category">
    <xsl:variable name="mois" select="substring(./@id,4,5)" />
    <xsl:variable name="annee" select="substring(./@id, 7)" />
    </xsl:for-each>
    Après, pour compter le nombre d'occurences, utilise la fonction count( ) d'XPath.

    Bonne continuation.

  4. #4
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    oui tu peux facilement traiter une chaine de caractère pas besoin de modif ton doc XML a par si ca te fais plaisir
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

Discussions similaires

  1. [Dates] Pb récupération année, mois, date en cours
    Par Lolie11 dans le forum Langage
    Réponses: 3
    Dernier message: 22/05/2007, 16h42
  2. date en année/mois/jour
    Par marcusien dans le forum Windows Forms
    Réponses: 6
    Dernier message: 13/03/2007, 14h58
  3. Export Excel et formatage en date (année mois)
    Par joshua12 dans le forum Access
    Réponses: 1
    Dernier message: 20/09/2006, 00h22
  4. Réponses: 2
    Dernier message: 21/07/2006, 14h04
  5. [MySQL] Ecart de temps décomposé en différentes unités (années, mois, jours, etc)
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/03/2006, 09h38

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