xsl-list
[Top] [All Lists]

RE: XSL Positional Grouping Problem

2005-05-27 01:19:38
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>