Altova Mailing List Archives>Archive Index >xsl-list Archive Home >Recent entries >Thread Prev - [xsl] what index is the current item in a list? [Thread Next] RE: [xsl] what index is the current item in a list?To: Date: 8/2/2005 8:20:00 PM In XSLT 2.0: <xsl:number select="parent::Item" count="*[Type='type2']"/> In 1.0: <xsl:for-each select="parent::Item"> <xsl:number count="*[Type='type2']"/> </xsl:for-each> Or if you prefer: count(parent::Item/preceding-sibling::*[Type='type2']) Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Lee Breisacher [mailto:LBreisacher@xxxxxxxxxxxxxxxxxxx] > Sent: 02 August 2005 20:20 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] what index is the current item in a list? > > I want to do something that seems like it should be easy, but I cannot > figure it out. > > I have a list of items like this in the input XML: > > <Item> > <Type>type1</Type> > .. Other elements here.. > </Item> > <Item> > <Type>type2</Type> > .. Other elements here.. > </Item> > <Item> > <Type>type1</Type> > .. Other elements here.. > </Item> > <Item> > <Type>type3</Type> > .. Other elements here.. > </Item> > <Item> > <Type>type2</Type> > .. Other elements here.. > </Item> > > Each "Type" is handled differently, so the templates look like this: > > <xsl:template match="*[Type = 'type1']"> > .. Do type1 stuff here.. > </xsl:template> > > <xsl:template match="*[Type = 'type2']"> > .. Do type2 stuff here.. > </xsl:template> > > <xsl:template match="*[Type = 'type3']"> > .. Do type3 stuff here.. > </xsl:template> > > > Now, further down in the input XML is another list of items > related to, > say, type2 Items, in the same order as in the Item list, like this: > > <Type2Info> > .. Elements related to the first type2 item is here.. > </Type2Info> > <Type2Info> > .. Elements related to the second type2 item is here.. > </Type2Info> > > > So, I'm inside the second match template above and I want to > get at the > proper Type2Info element. Logically, what I want to do is this: "Get > the Nth Type2Info node where N is the ordinal number of the type2 Item > within the list of type2 Items." > > I can make a list of just the type2 Items, that's easy. And I > can access > the Nth Type2Info item, that's easy. I can even find the current type2 > Item within the list of type2 Items, but I can't see how to determine > what N is. I've studied position() and xml:number and > count(), etc. but > nothing seems quite what I need. > > Help! > > Thanks, > > Lee | ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
