Re: grouping question
Hi Pat, > Addendum to my earlier question. This xsl seems to be a good start > but I am having problems with use of "following-sibling". I am > operating under the assumption that I can get the database to tell > me how many tracks are in each product. I am hoping that this will > help me. It looks as though the problem is in: > <xsl:template match="row"> > <product> > <xsl:for-each select="current() | following-sibling::row" > > <track> > <xsl:copy-of select="."/> > </track> > </xsl:for-each> > </product> > </xsl:template> Here, within the product element that you're creating, you're iterating over a number of rows, making a track element for each. But from the looks of it, you're only getting the current row (the first from that album) and its immediately following sibling (the second from that album). You want to get *all* the rows following the current row that have the same album as the current row. So try: <xsl:for-each select="current() | following-sibling::row[album = current()/album]"> <track><xsl:copy-of select="node()" /></track> </xsl:for-each> I put select="node()" rather than select="." in the above because I think you probably want the result to look like: <track> <album>1</album> <track_id>1</track_id> <artist>Rush</artist> </track> rather than having a row element nested within the track element. I hope that helps, Jeni --- Jeni Tennison http://www.jenitennison.com/ 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