Subject: Re: [xsl] grouping list items by attribute From: Mukul Gandhi <gandhi.mukul@xxxxxxxxx> Date: Tue, 4 Oct 2005 10:04:07 +0530 |
Please try this stylesheet <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" indent="yes" /> <xsl:template match="/tx.list"> <ol> <xsl:for-each select="tx.li"> <xsl:choose> <xsl:when test="@level = '0'"> <li><xsl:value-of select="tx.p" /></li> </xsl:when> <xsl:otherwise> <xsl:if test="(position() = 1) or preceding-sibling::tx.li[1]/@level = '0'"> <ul> <li><xsl:value-of select="tx.p" /></li> <xsl:call-template name="printli"> <xsl:with-param name="list" select="following-sibling::tx.li" /> </xsl:call-template> </ul> </xsl:if> </xsl:otherwise> </xsl:choose> </xsl:for-each> </ol> </xsl:template> <xsl:template name="printli"> <xsl:param name="list" /> <xsl:if test="$list/@level = '1'"> <li><xsl:value-of select="tx.p" /></li> <xsl:call-template name="printli"> <xsl:with-param name="list" select="$list[position() > 1]" /> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet> Regards, Mukul On 10/4/05, Lynn Alford <lynn.alford@xxxxxxxxxx> wrote: > Given this as the input > > <tx.list style="ID1c6"> > <tx.li level="0" number="1. "> > <tx.p style="ID1a2">List1</tx.p> > </tx.li> > <tx.li level="0" number="2. "> > <tx.p style="ID1a2">List2</tx.p> > </tx.li> > <tx.li level="1" number="o?= "> > <tx.p style="ID1a2">Sublist 1</tx.p> > </tx.li> > <tx.li level="1" number="o?= "> > <tx.p style="ID1a2">Sublist 2</tx.p> > </tx.li> > <tx.li level="1" number="o?= "> > <tx.p style="ID1a2">Sublist 3</tx.p> > </tx.li> > <tx.li level="0" number="3. "> > <tx.p style="ID1a2">List3</tx.p> > </tx.li> > </tx.list> > > The preferred outcome would be > > <ol> > <li>List1</li> > <li>List2</li> > <ul> > <li>Sublist 1</li> > <li>Sublist 2</li> > <li>Sublist 3</li> > </ul> > <li>List3</li> > </ol> > > My basic problem is I can't quite figure out how you can use an increase in > level to trigger the start of a new list. Especially when the lists may be > nested much deeper and any level may be either ordered or unordered > lists. Siblings at the same level I can do easily enough. > > Lynn > > Lynn Alford Tel (07) 47 81 6256 > ITR Email: imla@xxxxxxxxxx > JCU QLD 4811 Australia ICQ: 64096907 > MSN: nicarra60@xxxxxxxxxxx Y!: nicarra60 > > 'I think an "uncatched exception" deserves three bug reports: one for the > exception, one for not catching it, and one for abuse of the English > language.' Michael Kay
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] grouping list items by at, Lynn Alford | Thread | RE: [xsl] grouping list items by at, Michael Kay |
Re: [xsl] grouping list items by at, Lynn Alford | Date | RE: [xsl] grouping list items by at, Michael Kay |
Month |