[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
On Fri, 21 Jan 2005 11:32:49 -0800 (PST), samir sawant <cindy_mona@xxxxxxxxx> wrote:
Hi,
Because you not provided a sample XML extract, I will solve the problem for this one:
<xsl:output indent="yes"/>
<xsl:param name="columns" select="2"/>
<xsl:variable name="size" select="ceiling(count(the_large_XML/row) div $columns)"/>
<xsl:template match="row" mode="col">
<td>
<xsl:apply-templates select="*"/>
</td>
<xsl:apply-templates select="following-sibling::row[position()=$size]" mode="col"/>
</xsl:template>
</xsl:stylesheet>
This is probably not really what you want, so provide more details of the output you're expecting.
Re: [xsl] XSL for 2 Side by Side columns with flow from top to down and then across
Subject: Re: [xsl] XSL for 2 Side by Side columns with flow from top to down and then across From: Joris Gillis <roac@xxxxxxxxxx> Date: Fri, 21 Jan 2005 22:30:42 +0100 |
On Fri, 21 Jan 2005 11:32:49 -0800 (PST), samir sawant <cindy_mona@xxxxxxxxx> wrote:
> Hi I am looking to convert the Large XML file with > 6 fields into 2 columns. > Each row has 6 fields. > > I want out put in below format: > > Row1 Row(n+1) > Row2 .... > Row3 .... > Row4 .... > .... .... > .... .... > .... .... > Row(n) Row(2n)
Hi,
Because you not provided a sample XML extract, I will solve the problem for this one:
<the_large_XML> <row><field>1</field><field>2</field><field>3</field><field>4</field><field>5</field><field>6</field></row> <row><field>a1</field><field>a2</field><field>a3</field><field>a4</field><field>a5</field><field>a6</field></row> <row><field>b1</field><field>b2</field><field>b3</field><field>b4</field><field>b5</field><field>b6</field></row> <row><field>c1</field><field>c2</field><field>c3</field><field>c4</field><field>c5</field><field>c6</field></row> <row><field>d1</field><field>d2</field><field>d3</field><field>d4</field><field>d5</field><field>d6</field></row> <row><field>e1</field><field>e2</field><field>e3</field><field>e4</field><field>e5</field><field>e6</field></row> </the_large_XML>
The following stylesheet: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:param name="columns" select="2"/>
<xsl:variable name="size" select="ceiling(count(the_large_XML/row) div $columns)"/>
<xsl:template match="the_large_XML"> <table> <xsl:apply-templates select="row[position() <= $size]"/> </table> </xsl:template>
<xsl:template match="row"> <tr> <xsl:apply-templates select="." mode="col"/> </tr> </xsl:template>
<xsl:template match="row" mode="col">
<td>
<xsl:apply-templates select="*"/>
</td>
<xsl:apply-templates select="following-sibling::row[position()=$size]" mode="col"/>
</xsl:template>
</xsl:stylesheet>
will result in this output: <table> <tr> <td>123456</td> <td>c1c2c3c4c5c6</td> </tr> <tr> <td>a1a2a3a4a5a6</td> <td>d1d2d3d4d5d6</td> </tr> <tr> <td>b1b2b3b4b5b6</td> <td>e1e2e3e4e5e6</td> </tr> </table>
possibly rendered thus by a user agent: 123456 c1c2c3c4c5c6 a1a2a3a4a5a6 d1d2d3d4d5d6 b1b2b3b4b5b6 e1e2e3e4e5e6
This is probably not really what you want, so provide more details of the output you're expecting.
regards, -- Using Opera's revolutionary e-mail client: http://www.opera.com/m2/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSL for 2 Side by Side column, samir sawant | Thread | [xsl] xpath:document - how to acces, Ross, Douglas |
[xsl] Combining xsl:keys, David Laurie | Date | Re: [xsl] replace table by one code, rd . contact |
Month |
Keywords