Subject: Re: Looping on a maximum value From: Steve Tinney <stinney@xxxxxxxxxxxxx> Date: Wed, 22 Dec 1999 14:16:54 -0500 |
Here is one way to do it: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:variable name="maxcol"> <xsl:for-each select="/items/item"> <xsl:sort select="@col" order="descending" data-type="number"/> <xsl:if test="position()=1"> <xsl:value-of select="@col"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:template match="/"> <row> <xsl:call-template name="printitems"/> </row> </xsl:template> <xsl:template name="printitems"> <xsl:param name="index" select="1"/> <xsl:for-each select="/items/item[@col=$index]"> <column number="{@col}" instance="{position()}"> <xsl:copy-of select="*"/> </column> </xsl:for-each> <xsl:if test="$index < $maxcol"> <xsl:call-template name="printitems"> <xsl:with-param name="index" select="$index + 1"/> </xsl:call-template> </xsl:if> </xsl:template> </xsl:stylesheet> Steve Brett McLaughlin wrote: > > Suppose I have an XML fragment that looks something like: > > <!-- Content --> > > <items> > <item col="2"> > <name>Some Name</name> > <content>Some Content</content> > </item> > <item col="4"> > <name>Some Other Name</name> > <content>Some More Content</content> > </item> > <item col="3"> > <name>Some New Name</name> > <content>Some Crazy Content</content> > </item> > <item col="2"> > <name>Some Guy's Name</name> > <content>Some Content that is Different</content> > </item> > </items> > > <!-- More Content --> > > I want to do the equivalent of: > > <!-- Get the highest column number and put it in an xsl variable called > numCols --> > > <!-- Loop from 0 to that variable (numCols) - 1 [or 1 .. numCols] --> > > <xsl:apply-templates select="item[@col=counter]" /> > > Does that make sense? Basically I need to get the number of columns I > will need, iterate from 1 to that number, and at each pass use the > counter to get all the items that specify that column as their col > attribute. > > Thanks > Brett > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list -- ---------------------------------------------------------------------- Steve Tinney Babylonian Section * University of Pennsylvania Museum stinney@xxxxxxxxxxxxx Phila, PA. 215-898-4047 XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Looping on a maximum value, Brett McLaughlin | Thread | resolving entities, Clay_Rowland |
Looping on a maximum value, Brett McLaughlin | Date | resolving entities, Clay_Rowland |
Month |