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 :

problème d'écriture de test [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 252
    Par défaut problème d'écriture de test
    Bonjour à tous.
    Je fais (encore) appel à vos services car je bute sur une question d'algo en xsl...
    Soit une selection de node et un tri à l'aide d'un foreach :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       <xsl:for-each select="//File">
    <xsl:sort select="Langage" order="ascending"/>  
     <xsl:sort select="Saison" order="descending"/>                               
     <xsl:sort select="Date" order="descending"/>   
    .......
    Je souhaite que le premier élément soit afficher "valide" si son 'état' est différent de 'not_valid'

    Ce qui donne le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <xsl:choose>
    <xsl:when test="position() = 1 and State != 'not_valid'">
    ....
    Je souhaite afficher les autres documents en tag archive si (et seulement si) le premier est valide, soit dans un état différent de 'not_valid'
    J'ai testé naturellement avec un if position() = 1 and State !='not_valid' mais je ne rentre pas dans la boucle car le if me bloque sur le premier élément....

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour,

    pourrait tu nous faire passer ton XML et ton XSLT complet, car je n'ai pas tout saisi là !
    Dans tous les cas, je doute que cela fonctionne :

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    252
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 252
    Par défaut
    Bonjour et merci du temps consacré.
    En fait j'ai réussi à résoudre à l'instant le souci, et voici la solution (ce n'est surement pas la meilleure mais bon...)

    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
     
       <xsl:for-each select="//File">
    <xsl:sort select="Langage" order="ascending"/>  
     <xsl:sort select="Saison" order="descending"/>                               
     <xsl:sort select="Date" order="descending"/> 
    <xsl:choose>
    <xsl:when test="position() = 1 and State != 'not_valid'">
       <xsl:for-each select="//File">
    <xsl:sort select="Langage" order="ascending"/>  
     <xsl:sort select="Saison" order="descending"/>                               
     <xsl:sort select="Date" order="descending"/> 
    <xsl:choose>
    <xsl:when test="position() = 1">
    .
    .//Ici j'affiche un tableau en html, le tag est valide
    .
    .
    </xsl:when>
    <xsl:when test="position() > 1">
    //Ici les archives
      </xsl:when>
    //Et on ferme les 2 foreach et les conditions....
                                                </xsl:choose>      
                                            </xsl:for-each>
                                        </xsl:when>
                                    </xsl:choose>      
                                </xsl:for-each>
    Je pense qu'en utilisant une méthode récursive ça aurait aussi pu le faire, mais je n'ai pas trouvé comment....

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

Discussions similaires

  1. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 13h15
  2. Problème d'écriture dans un fichier xml
    Par vanoou dans le forum C++Builder
    Réponses: 1
    Dernier message: 13/07/2005, 02h28
  3. Problème d'écriture dans un tableau
    Par Hokagge dans le forum MFC
    Réponses: 46
    Dernier message: 08/07/2005, 16h47
  4. problème d'écriture dans la BD
    Par billy_ze_kid dans le forum ASP
    Réponses: 6
    Dernier message: 12/06/2005, 20h30
  5. [communication série] problème lecture/écriture
    Par davinout dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 01/06/2005, 13h14

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