J'essaie de comprendre la meilleure façon d'effectuer un tri pour chaque & imbriqué. Par exemple mon XSLT ci-dessous effectue les opérations suivantes:XSLT imbriqué sort/pour-chaque
Sélectionne un ensemble de nœuds. par attribut Date
. Sortes
Exécute la position() pour tirer 4 nœuds.
Maintenant, la partie suivante est ce que je suis en train de comprendre. Après l'étape 3, je dois à nouveau trier par l'attribut Date, mais cette fois dans l'ordre suivant ... maintenant que l'ensemble de données est réduit à 4 nœuds. Suggestions? Merci pour l'aide!!
XSLT:
<xsl:template name="AdmissionsNewsList">
<ul class="stories-list">
<xsl:for-each select="AdmissionsSectionFront/TaxonomyNavigation[@Name='AdmissionsNewsList']/Category/Pages/Page">
<xsl:sort select="@Date" order="descending" />
<xsl:if test="position() < 5">
<!-- NOW THAT THE NODES HAVE BEEN SELECTED, SORTED, AND POSTION LIMIT SET
I NEED TO PERFORM ANOTHER SORT BY DATE (ASCENDING ORDER) HERE ON THE NARROWED DOWN DATA SET -->
<li>
<xsl:choose>
<xsl:when test="normalize-space(@ThumbnailImage)">
<img alt="{@LocalAlternateText}" src="images/{@ThumbnailImage}" />
</xsl:when>
<xsl:otherwise>
<img alt="{@LocalAlternateText}" src="images/News%20Photos/Default.jpg"/>
</xsl:otherwise>
</xsl:choose>
<div>
<h5>
<xsl:value-of select="@Title"/>
</h5>
<br/>
<xsl:apply-templates select="@Abstract"/>
<br/><br/>
<a href="{@URL}" class="full-story">
<xsl:apply-templates select="Page[@Name='Link']/@Target"/>Full Story
</a>
</div>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>
NOTE: Ce devait être en XSLT 1.0 & est d'utiliser MSXML 4.0 Parser. Merci d'avance!
Malheureusement, XSL 1.0 ne supporte pas beaucoup les types de données de date. – Oded
Bonne question (+1). Voir ma réponse pour une solution simple et logique. :) –
@Oded: Cette question est plus générale et a une bonne solution générale. Comme pour le type de données date, il semble que les valeurs de l'attribut '@ Date' (bien que non affichées) soient telles que le tri simple des chaînes fonctionne correctement avec eux (par exemple aaaa/mm/jj) –