[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] testing for child node and counting
Subject: Re: [xsl] testing for child node and counting From: "Joerg Heinicke" <joerg.heinicke@xxxxxx> Date: Wed, 6 Feb 2002 23:08:07 +0100 |
> <Orders> > <Row att="..."> > <field_a>...</field_a> > <field_b>...</field_b> > </Row> > <Row att="..."> > <field_a>...</field_a> > <field_b>...</field_b> > <field_c>...</field_c> > </Row> > ... > </Orders> > > > 1. I want to go through each <row> and create > an html table row only if <row> contains a > <field_c> child. I've tried this but it > didn't work: > > <xsl:for-each select="Orders/Row"> > <xsl:if text="Orders/Row/field_c"> > > <tr> > <td><xsl:value-of select="field_c"/></td> > </tr> > > </xsl:if> > </xsl:for-each> <xsl:for-each> is changing the context, so you are already in <Row>-elements and can not test on Orders/Row/field_c, but only field_c: <xsl:for-each select="Orders/Row"> <xsl:if test="field_c"> <tr> <td><xsl:value-of select="field_c"/></td> </tr> </xsl:if> </xsl:for-each> This can be shorten if you combine the if-statement with the select-statement of for-each: <xsl:for-each select="Orders/Row[field_c]"> <tr> <td><xsl:value-of select="field_c"/></td> </tr> </xsl:for-each> > 2. I want to print at the top of the html table > the number of <row>s that have a <field_c> > child. <xsl:value-of select="count(Orders/Row[field_c])"/> > Thanks in advance for any help. > -alex Regards, Joerg XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] testing for child node and co, alex | Thread | Re: [xsl] testing for child node an, David Carlisle |
[xsl] disable-output-escaping Yet A, Wendell Piez | Date | [xsl] Java memory overload with FOP, Danny Vint |
Month |