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, et conditions XPath prédicat ?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut XSLT, et conditions XPath prédicat ?
    Bonjour à tous,

    j'ai à nouveau, problème...
    voici la partie du fichier xml qui pose problème
    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
    <Resultats>
        <Ligne Nombre="1">
          <Label>MESURES SUR LE SITE DE PARIS</Label>
        </Ligne>
        <Ligne Nombre="2" >
          <Date>2000-01-01 01:00:00+01:00</Date>
          <Val>27</Val>
          <Val>3</Val>
          <Val>15</Val>
          <Val>0</Val>
          <Val>0</Val>
          <Val>15</Val>
          <Val> </Val>
          <Val>0</Val>
        </Ligne>
        <Ligne Nombre="3">
          <Date>2000-01-01 02:00:00+01:00</Date>
          <Val>25</Val>
          <Val>2</Val>
          <Val>14</Val>
          <Val>0</Val>
          <Val>0</Val>
          <Val>18</Val>
          <Val> </Val>
          <Val>0</Val>
        </Ligne>
    </Resultats>
    Et voici la partie de mon XSL qui traite ceci
    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
    <xsl:for-each select="//Ligne">
    		  <tr class="soustitre">
    	    <td colspan="100%">
    	       <xsl:value-of select="Label"/>
    	    </td>
    	   </tr>
     
                  <tr>
                    <td>
                    <xsl:variable name="date" select="Date"/>
                    <xsl:value-of select="concat(substring($date, 9, 2),'/', substring($date, 6, 2),'/',  substring($date,1,4))"/> <!-- pour mettre la date au format jj/mm/aa -->
                  </td>
                  <xsl:for-each select="Val">
                    <td>
                      <xsl:value-of select="."/>
                    </td>
                  </xsl:for-each>
                </tr>
          </xsl:for-each>


    Il me crée un <tr> avec la valeur du label dont la largeur est le tableau en entier et en dessou un autre <tr>.

    J'ai mis en fichier joint une capture d'écran.

    J'ai testé en faisant un test conditionnel mais ca n'a pas marché car il me dit qu'on ne peut faire ceci :
    <xsl:for-each select="//Ligne">
    <xsl:if select="Label"> //Un select est impossible dans un if

    La solution est je pense de traduire en langage le :
    pour chaque balise Ligne
    si je rencontre la balise <label>
    je créer un tr de la largeur du tableau
    (sinon) je crée mes cellules normalement

    Quelqu'un peut-il m'aider ?
    A mon avis la solution vient peut être des prédicats XPath...
    Images attachées Images attachées  

  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
    pourquoi tu fais pas simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:for-each select="//Ligne/Label">
    .........tes actions .........
    </xsl:for-each>
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    si je fais ceci alors je serai dan la balise <label></label>
    je n'aurai pas accès à mes données <Val></Val>

    Et puis mon fichier xml était un raccourci j'ai plusieurs balises
    <Resultats>

    </Resultats>

    En fait ce que j'aimerais c'est pour chaque <Resultats>
    Afficher sur un <tr> mon <label> qui fera office de titre de sous parties
    puis mes données
    avec une ligne par balise <ligne>, dans la première case <td> la valeur de ma balise <date> puis les valeurs des balises <Val>

    Le pb vient du fait que la balise <Label> est contenu dans une balise <Ligne> je sais pas pourquoi ce qu'il fait qu'il me crée cette ligne intermédiaire que l'on voit sur le fichier joint...

  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
    Un peu d intuition mon amie.......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <xsl:for-each select="//Resultat/Ligne">
    ton tr : <xsl:value-of slect="./Lable">
     
    ta date :<xsl:value-of slect="./date">
    <xsl:for-each select="./val">
    <xsl:value-of slect=".">
    </xsl:for-each>
    </xsl:for-each>
    bon j ai lu en travers ton mess car la j ai faim
    mais voila tu vois le raissonnement.

    ok ?
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    Mais cela ne marche pas, car <Label> est entouré de la balise <Ligne> sans la balise <ligne> autour j'ai réussi.

  6. #6
    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
    mais c 'est pas grave ca ...........

    tu rajoute "ligne" dans ton expression xpath ... fais voir ton code xsl
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 60
    Points : 33
    Points
    33
    Par défaut
    j'ai fait exactement ce que tu m'as dit. en rajoutant simplement les <tr> et <td> c'est tout.
    Bon j'ai demandé à la personne qui génère les fichiers xml de me virer la balise <ligne> autour du label qui soit dit en passant ne seravait à rien et là ca marche.

  8. #8
    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

    le principal : un bon document XML
    apres Xpath et xsl ca devient tout de suite tres simple

    pense au tag resolu
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

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

Discussions similaires

  1. [XPATH] Prédicat sur valeur de node
    Par SiZiOUS dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 11/03/2008, 15h28
  2. [XSLT] Compteur + condition
    Par Ptite Pupuce dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 07/11/2007, 19h06
  3. [XSLT]des condition dans xsl
    Par mabedan dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 19/08/2007, 18h50
  4. [XSLT]tri + probleme Xpath
    Par Fabouney dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/11/2006, 08h40
  5. [XSLT][ACCESS]condition sur valeur
    Par kor dans le forum XSL/XSLT/XPATH
    Réponses: 23
    Dernier message: 10/01/2005, 14h14

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