no need for xsl:for-each try nesting your templates
<xsl:template match="Row">
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:apply-templates select="."/>
</fo:block>
</fo:table-cell>
</xsl:template>
then supply other matching templates
<xsl:template match="NodeA">
</xsl:template>
<xsl:template match="Node1">
</xsl:template>
though I suspect that you may want to take a look at restructering your xml
data.....be descriptive with your element names... is your data really
data-centric instead of document centric or have you just got into the habit of
thinking of data in tables and rows ?
try the following sites for more information
www.dpawson.co.uk
http://www.w3.org/Style/XSL/
www.topxml.com
gl, jim fuller
-----Original Message-----
From: Barry van Weldam [mailto:barry(_at_)fula(_dot_)nl]
Sent: 17 September 2003 09:29
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Noob: how to use "for each" in this context?
Hi,
I realised i am repeating this code in my .xsl:
------------------------------------------
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='($node="null")'></xsl:when>
<!--or the value-->
<xsl:otherwise><xsl:value-of select="$node"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
------------------------------------
Now i want to use a for each, how do i do that?
BTW:
My .xml
--------------------------------------------------------
<Root>
<Table>
<Row>
<nodeA>Total</nodeA>
<node1>null</node1>
<node2>777</node2>
etc
and this is the part of the .xsl i want to streamline
------------------------------------------------------------------------------
<xsl:template match="//Row">
<fo:table-row>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:value-of select="nodeA"/></fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node1="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node1"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node2="null")'></xsl:when>
<xsl:otherwise> <xsl:value-of select="node2"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node3="null")'></xsl:when>
<xsl:otherwise> <xsl:value-of select="node3"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node4="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node4"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node5="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node5"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node6="null")'></xsl:when>
<xsl:otherwise> <xsl:value-of select="node6"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node7="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node7"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node8="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node8"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node9="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node9"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node10="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node10"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node11="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node11"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
<fo:table-cell border="solid black 1 px" border-collapse="collapse">
<fo:block>
<xsl:choose>
<!--Here we put nothing if nodevalue=null -->
<xsl:when test='(node12="null")'></xsl:when>
<xsl:otherwise><xsl:value-of select="node12"/></xsl:otherwise>
</xsl:choose>
</fo:block>
</fo:table-cell>
</fo:table-row>
------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list