Subject: [xsl] sorting before selecting by position From: "Russ Holmes" <russ1@xxxxxxxxxx> Date: Mon, 20 Aug 2001 19:19:19 +1200 |
Given XML; <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="C:\WebView\Root\WebView\Locations.xsl"?> <xml> <rs> <z loc="NY" ldesc="New York Office" locno="1"/> <z loc="VAN" locdesc="Vancouver Office" locno="2"/> <z loc="LON" locdesc="London Office" locno="3"/> <z loc="DC" locdesc="Washington DC" locno="4"/> <z loc="QUE" locdesc="Quebec" locno="5"/> <z loc="CHI" locdesc="Chicago" locno="6"/> <z loc="KY" locdesc="Kentucky Office" locno="7"/> <z loc="LA" locdesc="Los Angeles County Office" locno="8"/> <z loc="TOR" locdesc="Toronto" locno="9"/> <z loc="MON" locdesc="Montreal" locno="10"/> <z loc="PAR" locdesc="Paris" locno="11"/> <z loc="SDY" locdesc="Sydney Office" locno="12"/> <z loc="MDR" locdesc="Marina del Rey" locno="13"/> <z loc="BUF" locdesc="Buffalo, NY" locno="14"/> <z loc="POR" locdesc="Portland Oregon Office" locno="15"/> <z loc="SF" locdesc="San Francisco" locno="16"/> </rs> </xml> I would like to sort according to attribute "loc" and then output rows with position greater than 14 AFTER the sort ie .. <z loc="TOR" locdesc="Toronto" locno="9" /> <z loc="VAN" locdesc="Vancouver Office" locno="2" /> .. I have tried XSL; <?xml version="1.0"?> <xsl:stylesheet version="1.0"> <xsl:template match="*|/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="text()|@*"> <xsl:value-of select="."/> </xsl:template> <xsl:template match="/"> <xsl:apply-templates select="//rs"/> </xsl:template> <xsl:template match="//rs"> <rs> <xsl:apply-templates select="z[position() > 14]"> <xsl:sort select="@loc" data-type="text" order="ascending"/> </xsl:apply-templates> </rs> </xsl:template> <xsl:template match="//z"> <z> <xsl:for-each select="@*"> <xsl:copy> <xsl:apply-templates select="@* | text()"/> </xsl:copy> </xsl:for-each> </z> </xsl:template> </xsl:stylesheet> but this results in; ... <z loc="POR" locdesc="Portland Oregon Office" locno="15" /> <z loc="SF" locdesc="San Francisco" locno="16" /> .. as the position criteria is performed before the sorting.. How can I sort, then select according to a criteria? This will eventually be part of a table based on Data islands using client side paging and sorting. Thanks for any help Russ Holmes XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] streaming multiple XML in, Francis Norton | Thread | RE: [xsl] sorting before selecting , Jarno . Elovirta |
[xsl] streaming multiple XML input, Luc Pionchon | Date | RE: [xsl] sorting before selecting , Jarno . Elovirta |
Month |