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 :

[XSL] Probleme pour "trier" mon XML


Sujet :

XSL/XSLT/XPATH XML

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 36
    Points
    36
    Par défaut [XSL] Probleme pour "trier" mon XML
    Bonjour

    Je ne m'en sors pas... J'ai un fichier XML qui ressemble à 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
     
    <Version Num="next_version">
        <Comment>
          <Category>bugfix</Category>
          <Product>DisplayEditor</Product>
          <Product>AFX</Product>
          <Desc> nouveau test</Desc>
        </Comment>
        <Comment>
          <Category>compilfix</Category>
          <Product>DisplayEditor</Product>
          <Desc> warning</Desc>
        </Comment>
    ...
    Et je souhaiterais que le resultat affiche quelque chose du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DisplayEditor
       bugfix
          nouveau test
       compilfix
          warning
    AFX
       bugfix
          nouveau test
    A savoir, effectuer un premier tri sur la balise <Product>, puis un nouveau sur la balise <Category>. Sachant qu'il peut y avoir plusieurs balises Product pour un seul Comment (comme dans l'exemple ci-dessus).
    J'ai essayé plein de trucs avec des <xsl:key...> et autre déclaration de variable, mais j'arrive pas au résultat voulu. Plutot que de faire des essais à l'aveuglette, je prefere demander à des personnes plus experimenter que moi dans ce domaine.

    Merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Bon... j'ai "en partie" trouvé une solution.

    Mon XSL:
    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
     
    <xsl:key name="cat" match="Version/Comment" use="Category" />
    <xsl:key name="prod" match="Version/Comment" use="Product" />
     
    <xsl:template match="Version">
        <xsl:for-each select="Comment[generate-id()=generate-id(key('prod',Product))]">
          <xsl:sort select="Product" />        
              <xsl:value-of select="Product"/>
     
              <xsl:for-each select="key('prod',Product)">
                <xsl:variable name="currentProd" select="Product"/>             
                <xsl:value-of select="Category"/>
     
                      <xsl:if test="Product=$currentProd">
                      ...
    Ca marche, et c'est bien groupé par Product. Par contre j'aimerais grouper également par Category, à savoir que sous un Product, je voudrais grouper les Category de meme nom en un seul bloc... mais là ca coince

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 36
    Points
    36
    Par défaut
    Arrghh... j'ai parlé trop vite. Ca ne marche pas bien. Dans la cas où il y a plusieurs elements "Product", le résultat ne tient compte que du premier

    Quelqu'un pour m'aider à mieux comprendre ?? svp...

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/07/2007, 09h27
  2. [xsl] xsl juste pour faire copie d'un xml
    Par peppena dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 17/02/2004, 16h17

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