2010-06-24 2 views
0

Dans le code XML suivant, je voudrais seulement obtenir le nombre 2 et 5 éléments, comment pourrait-il être fait sur XSLT?XSLT article d'affichage

<root> 
    <content>item 1</content> 
    <content>item 2</content> 
    <content>item 3</content> 
    <content>item 4</content> 
    <content>item 5</content> 
    <content>item 6</content> 
</root> 
+1

XML ne pas ordre défini sur elle (à part ordre du document), donc un analyseur peut réorganiser les nœuds à volonté. Pourquoi auriez-vous besoin de sélectionner des nœuds par position seulement? – Oded

+0

La raison pour laquelle nous avons un système client pour générer un fichier XML ordonné pour nous – cc96ai

+0

@Oded: Dans la spécification XML (http://www.w3.org/TR/2008/REC-xml-20081126/) il n'y a pas de définitions de commande mis à part la validation du contenu. Même ne contient pas l'expression "ordre du document". Dans la spécification XPATH, il existe des définitions de commande. En particulier, les axes de navigation sont en rapport avec l'ordre des documents, et 'position()' suit l'axe de la portée. Mais il n'est pas garanti qu'une expression qui évalue un ensemble de nœuds renvoie cet ensemble de nœuds dans n'importe quel ordre. XSLT garantit pour certaines instructions qu'une expression d'ensemble de nœuds sera utilisée dans l'ordre du document. –

Répondre

1

Essayez ceci:

<xsl:value-of select="/root/content[2]" /> 
<xsl:value-of select="/root/content[5]" /> 

REMARQUE:

Oded est juste, mais je pense que c'est le meilleur que vous pouvez obtenir

+0

Presque à droite. Les index de tableau commencent par 1 dans XSLT. – Oded

+0

Doh! Merci pour le rappel. –