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

XML/XSL et SOAP Discussion :

[XML] n'afficher que les 3 premiers!


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [XML] n'afficher que les 3 premiers!
    bonjour,
    je cherche à afficher dans une page web seulement 3 titres (les plus récents) sur la liste que j'ai dans un XML. Je sais que je dois afficher les id les plus grands des ces titres, mais je ne sais pas comment m'y prendre ni ou le faire : dans le XML ou le XSL?
    merci d'avance!

    j'ai oublié de dire que ces titres se trouvent chacun dans un span, et que tous les span se trouvent dans un div, voila!

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    un exemple de xml avec les 3 titres que tu veux afficher (+ quelques autres)

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2003
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    <doc>

    <publications id="1" >
    <titre>Ambiguite et construction</titre>
    <description>description de p1</description>
    </publications>

    <publications id="2">
    <titre>Les interactions enfantines</titre>
    <description>description de p2</description>
    </publications>

    <publications id="3" >
    <titre>Appropriation de langues </titre>
    <description>description de p3</description>
    </publications>

    <publications id="4" >
    <titre>Analyse des documents </titre>
    <description>description de p4</description>
    </publications>

    </doc>


    je ne sais pas si ca va taider...j'ai une feuille de style qui s'y rattache mais je pense pas ke se soit utile. L'essentiel est d'afficher les 3 derniers, par ordre d'id décroissant..voili voilou

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    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
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
      <xsl:output method="xml" indent="yes"/>
     
      <xsl:template match="/">
        <resultat>
          <xsl:for-each select="doc/publications">
            <xsl:sort select="./@id" data-type="number" order="descending"/>
            <xsl:if test="position() &lt; 4">
              <xsl:copy-of select="."/>
            </xsl:if>
          </xsl:for-each>
        </resultat>
      </xsl:template>
     
    </xsl:stylesheet>
    Voila, c'est pas vraiment optimisé mais ca a le mérite de marcher... :o
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par GrandFather
    Voila, c'est pas vraiment optimisé mais ca a le mérite de marcher... :o
    bof dans un cas comme ca je suis pas sur qu'il y ai tellement besoin d'optimiser mais ca doit donner un truc du genre(pas teste )


    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:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
      <xsl:template match="/">
        <xsl:element name="resultat">
           <xsl:apply-templates select="doc/publications[position() &lt; 4]">
             <xsl:sort select="./@id" data-type="number" order="descending"/>
           </xsl:apply-templates>  
        </xsl:element>
     </xsl:template>
     
     <xsl:template match="publications">
        <xsl:copy-of select="."/>
     </xsl:template>
     
    </xsl:stylesheet>
    c'est bien a ca que tu pensais?

  6. #6
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Euh, je crains que ta solution ne marche pas...

    position() donne le rang d'un élément dans le contexte. Ton instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:apply-templates select="doc/publications[position() &lt; 4]">
    ne fait qu'appliquer le template sur les 3 premiers éléments publications dans l'ordre du fichier. Or, il faut utiliser position() sur l'ensemble trié des éléments publications pour que ca marche.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  7. #7
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    exact

Discussions similaires

  1. [AC-2002] N'afficher que les x premiers enregistrements
    Par azertix dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 26/01/2010, 09h11
  2. Réponses: 10
    Dernier message: 12/04/2006, 10h56
  3. Prendre que les 5 premiers enregistrements (les + important)
    Par __fabrice dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/11/2005, 09h24
  4. algorithme de tri tableau :afficher que les éléments unique
    Par sofiane61 dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 31/03/2005, 19h50
  5. n'afficher que les "print" dans query annalyser
    Par sky_perrinos dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 14/12/2004, 10h58

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