Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1802 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [Résolu] Limite le nombre d'éléments matchés

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Limite le nombre d'éléments matchés

n°1862189
jak0
Posté le 16-03-2009 à 17:32:30  profilanswer
 

Bonjour à tous,
 
Je souhaiterai faire une petite page générée en XSL depuis un flux RSS (XML). Pour tout ce qui est XML et HTML, c'est bon.
Par contre, dans ma feuille XSL, je n'ai pas trouvé le moyen de limiter le nombre d'éléments retournés.
XSL :

Code :
  1. <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version="1.0">
  2. <xsl:output method="html" encoding="ISO-8859-1"/>
  3. <xsl:template match="channel">
  4.   <xsl:for-each select="item">
  5.     <xsl:if test="???">
  6.       <xsl:param name="link"/>
  7.       <a href="{$link}"><xsl:value-of select="title"/></a>
  8.     </xsl:if>
  9.   </xsl:for-each>
  10. </xsl:template>
  11. </xsl:stylesheet>


 
XML :

Code :
  1. <channel>
  2.   <item>
  3.     <link>lien1</link>
  4.     <title>titre1</title>
  5.   </item>
  6.   <item>
  7.     <link>lien2</link>
  8.     <title>titre2</title>
  9.   </item>
  10.   <item>
  11.     <link>lien3</link>
  12.     <title>titre3</title>
  13.   </item>
  14.   <item>
  15.     <link>lien4</link>
  16.     <title>titre4</title>
  17.   </item>
  18. </channel>


 
La question est donc de n'afficher que les 3 premiers...
 
Quelqu'un aurait-il une idée ?
 
J'ai essayé avec la bonne vieille méthode, d'incrémenter une variable, mais apparemment on peut pas modifier une variable existante ! oO
 
Merci d'avance de vos réponses


Message édité par jak0 le 17-03-2009 à 11:30:21
mood
Publicité
Posté le 16-03-2009 à 17:32:30  profilanswer
 

n°1862216
masklinn
í dag viðrar vel til loftárása
Posté le 16-03-2009 à 18:19:47  profilanswer
 

XSLT est un langage fonctionnel (mauvais, mais fonctionnel quand même), donc les habitudes venant de langages impératifs/procéduraux (genre un compteur incrémenté dans une boucle) ne vont pas marcher du tout.

 

Mais de toute façon, ici tu n'en as pas besoin, XPath fournit tous les outils nécessaires, genre la fonction position().

Code :
  1. <xsl:template match="channel">
  2.     <xsl:for-each select="item[position() &lt;= 3]">
  3.         <a href="{link/text()}"><xsl:value-of select="title"/></a>
  4.     </xsl:for-each>
  5. </xsl:template>


Message édité par masklinn le 16-03-2009 à 18:20:11

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1862385
jak0
Posté le 17-03-2009 à 10:26:26  profilanswer
 

Merci beaucoup pour ta réponse et ton explication.
J'essaye ça de suite.

n°1862427
jak0
Posté le 17-03-2009 à 11:29:49  profilanswer
 

Merci, ça marche nickel !!!
gg Masklinn ;-)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [Résolu] Limite le nombre d'éléments matchés

 

Sujets relatifs
[RESOLU]isset d'un GET d'une checkboxProbléme CSS
[Résolu] Créer un fichier tableur en PHP (pas EXCEL)Réalisation de la somme parallèle des éléments d’une matrice: openmp
[Résolu][shell] suppresion de dossier/fichier datant plus de 30 jours[RESOLU] Adresse SanS "WWW"
dossier, sous dossier, nombre de fichier, poidsredimensionner un graphique [Resolu]
[C#, Résolu] UserControl, classes en propriété et code du concepteur.[résolu] Aide pour compilation
Plus de sujets relatifs à : [Résolu] Limite le nombre d'éléments matchés


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR