Subject: RE: XSL to generate required output
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 12 Dec 2005 08:58:14 -0000
|
It's a positional grouping problem. For XSLT 2.0, do
<xsl:for-each-group select="Row" group-starting-with="Row[Cell='##']">
For XSLT 1.0 solutions, google for "XSLT positional grouping".
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Amrit Pal Singh [mailto:ampsingh@xxxxxxxxx]
> Sent: 12 December 2005 04:45
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: XSL to generate required output
>
> Hi friends,
>
> I'm Having following input xml file.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <WoorkBook>
> <WorkSheet>
> <Name>Tarifs Clts & prog. de commande</Name>
> <table>
> <Row>
> <Cell>##</Cell>
> </Row>
> <Row>
> <Cell>COUPE</Cell>
> <Cell>Puissance</Cell>
> <Cell>Transmission</Cell>
> <Cell>Puissance fiscale</Cell>
> <Cell>Prix clientTTC EUR </Cell>
> <Cell>Code modhle</Cell>
> </Row>
> <Row/>
> <Row>
> <Cell>Audi TT</Cell>
> <Cell>163 ch</Cell>
> <Cell>BV 5 </Cell>
> <Cell>10 CV*</Cell>
> <Cell>28900</Cell>
> <Cell>8N30L40C00</Cell>
> </Row>
> <Row>
> <Cell>Audi TT</Cell>
> <Cell>190 ch</Cell>
> <Cell>BV 5 </Cell>
> <Cell>12 CV*</Cell>
> <Cell>30800</Cell>
> <Cell>8N30M40C00</Cell>
> </Row>
> <Row>
> <Cell>##</Cell>
> </Row>
> <Row/>
> <Row>
> <Cell>Audi TT</Cell>
> <Cell>163 ch</Cell>
> <Cell>BV 5 </Cell>
> <Cell>10 CV*</Cell>
> <Cell>31000</Cell>
> <Cell>8N90L40C00</Cell>
> </Row>
> <Row>
> <Cell>Audi TT</Cell>
> <Cell>190 ch</Cell>
> <Cell>BV 5 </Cell>
> <Cell>12 CV*</Cell>
> <Cell>33300</Cell>
> <Cell>8N90M40C00</Cell>
> </Row>
> </table>
> </WorkSheet>
> </WoorkBook>
>
>
> I need to generate the ouput as below. i.e to take hierarchy
> one level down when I see ## in Cell.
>
> <?xml version="1.0" encoding="UTF-8"?>
> <WoorkBook>
> <WorkSheet>
> <Name>Tarifs Clts & prog. de commande</Name>
> <table>
> <New>
> <Row>
> <Cell>COUPE</Cell>
> <Cell>Puissance</Cell>
> <Cell>Transmission</Cell>
> <Cell>Puissance fiscale</Cell>
> <Cell>Prix clientTTC EUR </Cell>
> <Cell>Code modhle</Cell>
> </Row>
> <Row/>
> <Row>
> <Cell>Audi TT</Cell>
> <Cell>163 ch</Cell>
> <Cell>BV 5 </Cell>
> <Cell>10 CV*</Cell>
> <Cell>28900</Cell>
> <Cell>8N30L40C00</Cell>
> </Row>
> <Row>
> <Cell>Audi TT</Cell>
> <Cell>190 ch</Cell>
> <Cell>BV 5 </Cell>
> <Cell>12 CV*</Cell>
> <Cell>30800</Cell>
> <Cell>8N30M40C00</Cell>
> </Row>
> </New>
> <New>
> <Row>
> <Cell>Audi TT</Cell>
> <Cell>163 ch</Cell>
> <Cell>BV 5 </Cell>
> <Cell>10 CV*</Cell>
> <Cell>31000</Cell>
> <Cell>8N90L40C00</Cell>
> </Row>
> <Row>
> <Cell>Audi TT</Cell>
> <Cell>190 ch</Cell>
> <Cell>BV 5 </Cell>
> <Cell>12 CV*</Cell>
> <Cell>33300</Cell>
> <Cell>8N90M40C00</Cell>
> </Row>
> </New>
> </table>
> </WorkSheet>
> </WoorkBook>
>
> Please let me know how to achaive this.
>
> Thanks,
> Amrit
|