[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] predicate inside a for-each
Subject: [xsl] predicate inside a for-each
From: yaXay <yaXay@xxxxxxx>
Date: Sun, 01 Jan 2006 16:51:24 +0100
|
Hi,
imagine the following scenario:
XML:
<table>
<head>
<row>row 1</row>
<row>row 2</row>
</head>
<body>
<field>field 1</field>
<field>field 2</field>
<field>field 3</field>
<field>field 4</field>
</body>
</table>
I would like to generate a XHTML table looking (a bit) like this:
row 1 field 1 field3
row 2 field 2 field4
However, I ran into a brick wall:
<xsl:template match="table">
<table>
<xsl:for-each select="head/row">
<tr>
<td><strong><xsl:value-of select="."/></strong></td>
<xsl:for-each select="../../body/field[position() mod
count(../../head/row) = ROWPOSITION]">
<td><xsl:value-of
select="position()"/>-<xsl:value-of select="../../@row-count"/></td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
</xsl:template>
ROWPOSITION needs to be the position of the row, which is processed by
the outer for-each. However, I can't think of any XPath expression to
get there..
Of course I could call another template and pass the row position as a
parameter, but I'd like to avoid that..
Any suggestions??
Thanks,
Ben
|