Altova Mailing List Archives>Archive Index >xsl-list Archive Home >Recent entries >Thread Prev - [xsl] Creating lists and sublists from a level attribute [Thread Next] Re: [xsl] Creating lists and sublists from a level attributeTo: Date: 9/1/2004 1:31:00 PM This is a standard grouping problem, XSLT2 has (will have) specific grouping constructs (group-adjacent) to make this easy but in xslt1 you can use any grouping technique (eg those on jeni's site http://www.jenitennison.com/xslt/grouping eg something like <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output indent="yes"/> <xsl:template match="x"> <ul> <xsl:apply-templates mode="toc" select="heading[1]"/> </ul> </xsl:template> <xsl:template mode="toc" match="heading"> <li> <span><xsl:value-of select="."/></span> <xsl:if test="@level < following-sibling::heading[1]/@level"> <ul> <xsl:apply-templates mode="toc" select="following-sibling::heading[1]"/> </ul> </xsl:if> </li> <xsl:apply-templates mode="toc" select="following-sibling::heading[@level=current()/@level][1]"/> </xsl:template> </xsl:stylesheet> <x> <heading level="1">A main Heading</heading> <heading level="2">Sub heading of main heading</heading> <heading level="2">another sub heading of main heading</heading> <heading level="1">Another main Heading</heading> </x> $ saxon head.xml head.xsl <?xml version="1.0" encoding="utf-8"?> <ul> <li> <span>A main Heading</span> <ul> <li> <span>Sub heading of main heading</span> </li> <li> <span>another sub heading of main heading</span> </li> </ul> </li> <li> <span>Another main Heading</span> </li> </ul> ________________________________________________________________________ This e-mail has been scanned for all viruses by Star Internet. The service is powered by MessageLabs. For more information on a proactive anti-virus service working around the clock, around the globe, visit: http://www.star.net.uk ________________________________________________________________________ | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
