Subject: Re: [xsl] First Element in Sorted List From: JBryant@xxxxxxxxx Date: Wed, 1 Jun 2005 09:34:45 -0500 |
Hi, John, You've hit the way I'd do it. However, XSL nearly always offers more than one way to do things. Here's a different way to approach your problem: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="items"> <html> <body> <xsl:apply-templates select="item[@sortorder = 1]"/> <xsl:apply-templates select="item[@sortorder > 1]"> <xsl:sort select="@sortorder"/> </xsl:apply-templates> </body> </html> </xsl:template> <xsl:template match="item[@sortorder='1']"> <p class="first"><xsl:value-of select="."/></p> </xsl:template> <xsl:template match="item[@sortorder > 1]"> <p class="notfirst"><xsl:value-of select="."/></p> </xsl:template> </xsl:stylesheet> As you can see, it is certainly not less verbose, and I doubt that it is more efficient, but it is another way. FWIW Jay Bryant Bryant Communication Services (presently consulting at Synergistic Solution Technologies) John <john-xsl-list@xxxxxxxx> 06/01/2005 08:38 AM Please respond to xsl-list@xxxxxxxxxxxxxxxxxxxxxx To xsl-list@xxxxxxxxxxxxxxxxxxxxxx cc Subject [xsl] First Element in Sorted List I am hoping to to confirm something before going in the wrong direction. My process needs to take action on the first element in a list of elements where the logic to determine first is the lowest numeric value of the sortorder attribute. I don't believe there is a one-line way to do this - I believe the entire list must be sorted, and then the position of each element after sort compared to determine if it is first. Is there a shorter/less expensive way to code the following <xsl:for-each select="item"> <xsl:sort select="@sortorder" data-type="number" /> <xsl:if test="position() = 1"> <!-- this is the first element in the sorted list --> </xsl:if> </xsl:for-each> I searched and found examples using this technique, but nothing really saying that this was the best or only approach. Thanks in advance, -John
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] First Element in Sorted List, John | Thread | Re: [xsl] First Element in Sorted L, David Carlisle |
RE: [xsl] Keys (easy one) match on , Andrew Welch | Date | Re: [xsl] First Element in Sorted L, David Carlisle |
Month |