[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: complex sorting
> This should parse the numeric value and sort, which it does > fine, except that all the attributes are stripped off the output. > > <xsl:template match ="I1/@* |I1"> > <xsl:if test="I1/@i44='N'"> > <xsl:copy> > <xsl:apply-templates select="@* | I1"> > <xsl:sort select="@i29" > data-type="number" order="descending"/> > </xsl:apply-templates> > </xsl:copy> > </xsl:if> > </xsl:template> Atrtibute nodes will match the above template rule but fail the <xsl:if> test, so they will produce no output. > > I need to perform a different sort if test ='Y' for the same > attribute node, moving the entire record to another section > of the document. that would look something like this. > You may need to use the substring() trick: concat(substring(@i44, 1 div (test='N')), substring(@i25, 1 div (test='Y')) If test='Y' this is concat(subtring(@i44, infinity), substring(@i25, 0)) which is string(@i25) while if test='N' it is string(@i44). Michael Kay Software AG home: Michael.H.Kay@xxxxxxxxxxxx work: Michael.Kay@xxxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|