RE: [xsl] XSL Positional Grouping Problem

Subject: RE: [xsl] XSL Positional Grouping Problem
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Fri, 27 May 2005 09:19:38 +0100
You can compute the level number of a <Data> element using

count(../preceding-sibling::Cell)+1

You've then got a problem that's essentially the same as the one which I
solve at:

http://www.idealliance.org/proceedings/xml04/papers/111/mhk-paper.html

using a recursive application of xsl:for-each-group

Michael Kay
http://www.saxonica.com/
 

> -----Original Message-----
> From: Luke McLean [mailto:Luke.McLean@xxxxxxxxxxxxx] 
> Sent: 26 May 2005 21:59
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] XSL Positional Grouping Problem
> 
> Hello, I'm hoping that someone can point me in the right direction. I
> have the following need:
> 
> I have been sent an MS Excel file that I have been asked to transform
> in the following way...
> 
> <Table>
> <Row>
> <Cell><Data>Level 1</Data></Cell>
> <Cell/>
> <Cell/>
> <Cell/>
> </Row>
> <Row>
> <Cell/>
> <Cell><Data>Level 2</Data></Cell>
> <Cell/>
> <Cell/>
> </Row>
> <Row>
> <Cell/>
> <Cell><Data>Level 2</Data></Cell>
> <Cell/>
> <Cell/>
> </Row>
> <Row>
> <Cell/>
> <Cell/>
> <Cell><Data>Level 3</Data></Cell>
> <Cell/>
> </Row>
> <Row>
> <Cell/>
> <Cell><Data>Level 2</Data></Cell>
> <Cell/>
> <Cell/>
> </Row>
> ..+5000 Rows
> 
> </Table
> 
> To a nested structure which is based on the position of the <Data>
> tag.
> 
> 
> <Table>
> <Level><Data>Level 1</Data>
>     <Level><Data>Level 2</Data</Level>
>     <Level><Data>Level 2</Data
>         <Level><Data>Level 3</Data</Level>
>     </Level>
>     <Level><Data>Level 2</Data</Level>
> 
> ..etc
> 
> </Level>
> </Table>
> 
> The nesting goes both up and down levels so I'm assuming recusion is
> the way to go but the level of existing nesting has me wracking my
> brains (when you don't do much of this it is a daunting task...). 
> 
> Thanks in advance,
> 
> Luke.
> 
> 
> 
> ##############################################################
> #######################
> This e-mail message has been scanned for Viruses and Content 
> and cleared 
> by NetIQ MailMarshal
> ##############################################################
> #######################
> 
> ##############################################################
> ##########
> This email message and any attachment(s) is intended solely for the
> addressee(s) named above. The information it contains is confidential
> and may be legally privileged.  Unauthorised use of the message, or
> the information it contains, may be unlawful. If you have received
> this message by mistake please call the sender immediately on
> 64 4 463 2500 or notify us by return email and erase the original
> message and attachments. Thank you.
> 
> The New Zealand Food Safety Authority of MAF accepts no responsibility
> for changes made to this email or to any attachments after 
> transmission
> from the office.
> ##############################################################
> ##########

Current Thread