|
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 |