|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: testing for child node and counting
> <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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








