This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: testing for child node and counting
- From: Wendell Piez <wapiez at mulberrytech dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 06 Feb 2002 17:13:28 -0500
- Subject: Re: [xsl] testing for child node and counting
- Reply-to: xsl-list at lists dot mulberrytech dot com
Alex,
At 04:52 PM 2/6/02, you wrote:
><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>
The test expression (not "text") is being evaluated, like any XPath
expression, relative to a context node, which in this case will be the Row
element that the template happens to be matching. You need <xsl:if
test="field_c"> which is short for <xsl:if test="child::field_c">: this
tests true if the context node has any field_c children.
>2. I want to print at the top of the html table
> the number of <row>s that have a <field_c>
> child.
If you're creating the table in a template matching Orders, the instruction
<xsl:value-of select="count(Row[field_c])"/>
should do it. This is short for count(child::Row[child::field_c]), which
counts the Row children (of your Orders context node) that have field_c
children.
I hope that helps,
Wendell
======================================================================
Wendell Piez mailto:wapiez@mulberrytech.com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list