[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] My Difficult counting problem
Subject: Re: [xsl] My Difficult counting problem From: Mike Brown <mike@xxxxxxxx> Date: Thu, 22 Aug 2002 16:22:49 -0600 (MDT) |
Girard Tim-TGIRARD1 wrote: > hello, > > I need some help doing the following, I can't seem to figure out how to do > this in XSL > > I need to convert something like this > <myElement> > <foo name="foobar1"/> > <foo name="foobar2"/> > <foo name="foobar1"/> > <foo name="foobar3"/> > <foo name="foobar1"/> > <foo name="foobar1"/> > <foo name="foobar3"/> > </myElement> > > and the output after running it through the XSL would be > > numberOccurrences[] = {1, 1, 2, 1, 3, 4, 2}; > > basically for each foo with a duplicate name you put the occurrence number > of it in the array at the correct position. <xsl:template match="myElement"> <xsl:text>numberOccurrences[] = {</xsl:text> <xsl:for-each select="foo"> <xsl:value-of select="count(preceding-sibling::foo[@name=current()/@name])+1"/> <xsl:if test="position() != last()">, </xsl:if> </xsl:for-each> <xsl:text>};</xsl:text> </xsl:template> If efficiency is an issue, xsl:key may be of some utility; it would be easy to set up a key that does the same work as the preceding-sibling business. - Mike ____________________________________________________________________________ mike j. brown | xml/xslt: http://skew.org/xml/ denver/boulder, colorado, usa | resume: http://skew.org/~mike/resume/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] My Difficult counting pro, Wendell Piez | Thread | RE: [xsl] My Difficult counting pro, Hunsberger, Peter |
Re: [xsl] My Difficult counting pro, Wendell Piez | Date | RE: [xsl] My Difficult counting pro, Girard Tim-TGIRARD1 |
Month |
Keywords