RE: grouping adjacent siblings
On Thu, 3 May 2001, Michael Kay wrote: > > I am trying to transform the following... > > > > <frag> > > <b>house</b> > > <a>door</a> > > <a>wall</a> > > <a>room</a> > > <b>barn</b> > > <a>hay</a> > > <a>cow</a> > > <a>poo</a> > > </frag> > > > You can do this with something like > > <xsl:for-each select="b"> > <xsl:variable name="id" select="generate-id()"/> > <xsl:apply-templates/> > <xsl:for-each > select="following-sibling::a[generate-id(preceding-sibling::b)=$id]"> > <xsl:apply-templates/> > </xsl:for-each> > </xsl:for-each> > > Mike Kay > Software AG thanks Michael... just to make sure i understand before i proceed... so I generate a unique id for the current context of <<b>>... (which defines a local variable named $id) then I select following <<a>> siblings using the condition that the preceding <<b>> sibling must have the same id. Therefore if the following <<a>> occurs after the following <<b>> it is not included in the result... thanks again.. Utah Ingersoll utah@xxxxxxxxxxxxxxx XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format