Subject: RE: [xsl] xsl- Transforming to HTML table with two entries in each row From: Jarno.Elovirta@xxxxxxxxx Date: Fri, 7 Mar 2003 09:17:26 +0200 |
Hip hei! > Let's say I hae the following XML > <fields> > <field> > <name>Field 1</name> > <value>Value 1</value> > </field> > <field> > <name>Field 2</name> > <value>Value 2</value> > </field> > <field> > <name>Field 3</name> > <value>Value 3</value> > </field> > <field> > <name>Field 4</name> > <value>Value 4</value> > </field> > </fields> > and I want the html table output (using XSL transfomration) to be : > <table> > <tr> > <td>Field 1</td> > <td>Value 1</td> > <td>Field 2</td> > <td>Value 2</td> > </tr> > <tr> > <td>Field 3</td> > <td>Value 3</td> > <td>Field 4</td> > <td>Value 4</td> > </tr> > </table> > > My problem is creating the mechnism that puts 2 (istead of 1 which is > simple and easy) "fields" in one row (tr element) It's a grouping problem, and there's most probably an entry for it in the FAQ. Anyhow, <xsl:template match="fields"> <table> <xsl:for-each select="field[position() mod 2 = 1]"> <tr> <xsl:for-each select="./* | following-sibling::field[1]/* "> <td> <xsl:value-of select="." /> </td> </xsl:for-each> </tr> </xsl:for-each> </table> </xsl:template> should do the trick. Cheers, Jarno - Delerium: Heaven's Earth (Matt Darey remix) XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] xsl- Transforming to HTML, Babu Sathish Ramaraj | Thread | RE: [xsl] xsl- Transforming to HTML, Jarno . Elovirta |
RE: [xsl] CDATA - Can I have XML ?, Jarno . Elovirta | Date | Re: [xsl] bug in LibXSLT???, S Woodside |
Month |