Subject: [xsl] Grouping while sorting From: "Ragulf Pickaxe" <jawxml@xxxxxxxxxxx> Date: Sun, 21 Nov 2004 17:59:27 +0000 |
Thank you very much in advance! Ragulf Pickaxe
<?xml version="1.0"> <Root> <!-- Input 1 --> <Elem GroupID="A" Order="1">A1</Elem> <Elem GroupID="A" Order="2">A2</Elem> <Elem GroupID="B" Order="4">B4</Elem> <Elem GroupID="A" Order="5">A5</Elem> <Elem GroupID="C" Order="1">C1</Elem> <Elem GroupID="B" Order="7">A7</Elem> </Root>
<?xml version="1.0"> <Root> <!-- Input 2 --> <Elem GroupID="A" Order="7">A7</Elem> <Elem GroupID="A" Order="5">A5</Elem> <Elem GroupID="B" Order="4">B4</Elem> <Elem GroupID="A" Order="2">A2</Elem> <Elem GroupID="C" Order="1">C1</Elem> <Elem GroupID="B" Order="1">A1</Elem> </Root>
<?xml version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <Output> <xsl:apply-templates select="Root"/> </Output> </xsl:template>
<xsl:template match="Root"> <xsl:apply-templates select="Elem"> <xsl:sort select="@GroupID"> <xsl:sort select="@Order" data-type="number"> </xsl:apply-templates> </xsl:template>
<xsl:template match="Elem"> <xsl:if test="not(preceding-sibling::Elem/@GroupID=current()/@GroupID)"> <Group><xsl:value-of select="@GroupID"/></Group> </xsl:if> <xsl:value-of select="."/> - </xsl:template> </xsl:stylesheet>
Output from input 1: <Output> <Group>A</Group>A1 - A2 - A5 - A7 - <Group>B</Group>B4 - <Group>C</Group>C1 - </Output>
Output from input 2 <Output> A1 - A2 - A5 - <Group>A</Group>A7 - <Group>B</Group>B4 - <Group>C</Group>C1 - </Output>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Default Rendering of HTML, Passin, Tom | Thread | Re: [xsl] Grouping while sorting, M. David Peterson |
Re: [xsl] doc() concat expression a, Bruce D'Arcus | Date | Re: [xsl] Grouping while sorting, M. David Peterson |
Month |