2010-08-02 8 views
2

J'essaie d'utiliser XSL pour convertir un fil de nouvelles en un fragment de HTML pour l'insertion dans une page Web. Le flux de nouvelles est de plusieurs centaines d'éléments et je veux seulement inclure les 10 derniers titres ... Le xsl est ci-dessous, je pensais que je pouvais avoir un compteur et sortir de la boucle après le nombre désiré de itérations. Cependant, après un peu de lecture, il semble que xsl ne soit pas conçu pour être utilisé de cette façon.XSLT, comment ne traiter que les premiers éléments X?

Quel est le «meilleur» moyen d'obtenir le résultat souhaité en xsl?

Un grand merci pour vos suggestions.

edit: Ne semble pas me laisser publier des extraits xml. Mais le modèle que je suis suivant a été soulevé d'ici: http://www.rgagnon.com/javadetails/java-0407.html

+0

Pour inclure des extraits xml dans votre texte, vous devez vous assurer qu'ils sont mis en forme sous forme de code. La manière la plus simple de le faire est de sélectionner le texte en question, puis de cliquer sur le bouton 'code' dans la barre d'outils d'édition (celle qui dit 101010). – AakashM

+0

que voulez-vous dire par "dernier"? Commande de document? Par une valeur de date dans l'élément ou l'attribut? –

Répondre

3
<xsl:for-each select="howto/topic[position() &lt;= 10]"> 
+0

Egalement dans un motif comme 'match =" howto/topic [11> position()] "' –

0

Je vous recommande de le résoudre en utilisant la requête XPath et pas en utilisant XSLT. XPath a deux fonctions, l'une est count(nodeset) et l'autre est position(). Avec la combinaison de ces fonctions, vous pouvez obtenir des résultats intéressants. Par exemple:

//news[position()<11] 

premiers retours 10 articles

ou

//news[position()>count(//news)-10] 

retours 10 derniers articles