Subject: RE: [xsl] complex sorting From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Fri, 6 Sep 2002 18:34:10 +0100 |
> 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] complex sorting, Isaac Blaise | Thread | RE: [xsl] How to pass variable from, Khan, Amir |
Re: [xsl] XSLT class, Wendell Piez | Date | Re: [xsl] Getting desired node on t, J.Pietschmann |
Month |