Subject: Re: [xsl] Grouping while sorting From: "Ragulf Pickaxe" <jawxml@xxxxxxxxxxx> Date: Mon, 22 Nov 2004 11:18:53 +0000 |
Regards, Ragulf Pickaxe
<!-- Data before first pass in two-pass solution --> <?xml version="1.0"> <Root> <Elem GroupID="A" Type1="1" Type2="0" Order="7">A7</Elem> <Elem GroupID="A" Type1="1" Type2="0" Order="5">A5</Elem> <Elem GroupID="B" Type1="0" Type2="0" Order="4">B4</Elem> <Elem GroupID="D" Type1="0" Type2="1" Order="2">D2</Elem> <Elem GroupID="C" Type1="1" Type1="1" Order="4">C4</Elem> <Elem GroupID="B" Type1="0" Type2="0" Order="3">B3</Elem> <Elem GroupID="A" Type1="1" Type2="0" Order="2">A2</Elem> <Elem GroupID="C" Type1="1" Type1="1" Order="1">C1</Elem> <Elem GroupID="D" Type1="0" Type2="1" Order="4">D4</Elem> <Elem GroupID="B" Type1="0" Type2="0" Order="2">B2</Elem> <Elem GroupID="D" Type1="0" Type2="1" Order="3">D3</Elem> <Elem GroupID="A" Type1="1" Type2="0" Order="1">A1</Elem> </Root>
<?xml version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="ChooseWhichType1First" select="'1'"/> <xsl:template match="/"> <Output> <xsl:apply-templates select="Root"/> </Output> </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: <Output> <Group>A</Group>A1 - A2 - A5 - A7 - <Group>C</Group>C1 - C4 - <Group>D</Group>D2 - D3 - D4 - <Group>B</Group>B2 - B3 - B4 - </Output>
<xsl:template match="Root"> <xsl:for-each select="Elem[generate-id(.) = generate-id(key('elems', @GroupID)[1])]"> <Group><xsl:value-of select="@GroupID" /></Group> <xsl:for-each select="key('elems', @GroupID)"> <xsl:sort select="@Order" data-type="number" /> <xsl:value-of select="." /> - </xsl:for-each> </xsl:for-each> </xsl:template>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Grouping while sorting, Jeni Tennison | Thread | Re: [xsl] Grouping while sorting, Ragulf Pickaxe |
[xsl] Q: to Jeni Tennison regarding, M. David Peterson | Date | [xsl] understanding key usage, Osman Çınar Eren |
Month |