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(_dot_)McLean(_at_)nzfsa(_dot_)govt(_dot_)nz]
Sent: 26 May 2005 21:59
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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.
##############################################################
##########
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--