Subject: Re: [xsl] group by number From: Frederic Laurent <fl@xxxxxxxxxxxxx> Date: Fri, 28 Nov 2003 15:38:47 +0100 |
Andreas Lindahl wrote: > Hi > > I have an xml file which looks pretty much like this: > <snip/> > Each group node should contain three item nodes. > > How should I do this with XSLT? use the position function... I set the root node to result <xsl:template match="/"> <result> <xsl:apply-templates select="//item" mode="test"/> </result> </xsl:template> <xsl:template match="item" mode="test"> <xsl:if test="position() mod 3 = 1"> <group id="{ceiling(position() div 3)}"> <xsl:apply-templates select="."/> <xsl:apply-templates select="following-sibling::item[1]"/> <xsl:apply-templates select="following-sibling::item[2]"/> </group> </xsl:if> </xsl:template> <xsl:template match="item"> <xsl:copy><xsl:apply-templates select="*|@*|text()"/></xsl:copy> </xsl:template> ---- java org.apache.xalan.xslt.Process -IN items.xml -XSL items.xsl <?xml version="1.0" encoding="UTF-8"?> <result> <group id="1"> <item>1</item> <item>2</item> <item>3</item> </group> <group id="2"> <item>4</item> <item>5</item> <item>6</item> </group> <group id="3"> <item>7</item> <item>8</item> <item>9</item> </group> </result> HTH cheers -- XPath free testing software : http://lantern.sourceforge.net Frédéric Laurent http://www.opikanoba.org XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] group by number, Andreas Lindahl | Thread | [xsl] pass comments into two XSLT's, Bruno LLopes |
Re: [xsl] File management via XSLT, Jarkko . Moilanen | Date | [xsl] Re: how to optimize recursive, Dimitre Novatchev |
Month |