This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: How to check for absence of a node?
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] How to check for absence of a node?
- From: Rene de Vries <RdVries at PCL-HaGe dot nl>
- Date: Fri, 15 Jun 2001 13:52:40 +0200
- Organization: PCL HaGé b.v.
- Reply-To: xsl-list at lists dot mulberrytech dot com
Hi Sudhir,
maybe this can help you on the way (other forummembers had to help me with the param-stuff):
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:template match="format">
<xsl:apply-templates select="tr">
<xsl:with-param name="thCount" select="count(/format/tr/th)"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="tr">
<xsl:param name="thCount"/>
<xsl:if test="td">
<xsl:variable name="tdCount" select="count(td)"/>
<xsl:if test="not($thCount=$tdCount)">
<p>
<xsl:text>Error: number of th and td not equal</xsl:text>
</p>
</xsl:if>
<xsl:if test="td[text()='NA']">
<p>
<xsl:text>Error: one or more td contain 'NA'</xsl:text>
</p>
</xsl:if>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Greetings Rene
{ @ @ }
^
\__/
"You don't need eyes to see, you need vision!"
-----Oorspronkelijk bericht-----
Van: Sudhir Malhotra [SMTP:sudhirmalhotra123@hotmail.com]
Verzonden: vrijdag 15 juni 2001 8:30
Aan: xsl-list@lists.mulberrytech.com
Onderwerp: [xsl] How to check for absence of a node?
I need help in testing my input XML for "NA" or empty response as shown.
Please refer to the following code.
I would like to call error-template in case
A. I don't find the node "format/tr[2]/td[position()>1]", or
B. The value of format/tr[2]/td[position()>1] is "NA"
Any input will be greatly appreciated.
Thanks.
-sm
-- XML input ---
<format>
<tr>
<th>th1</th>
<th>th2</th>
<th>th3</th>
<th>th4</th>
<th>th5</th>
<th>th6</th>
<th>th7</th>
<th>th8</th>
</tr>
<tr>
<td>timestamp1</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
<td>NA</td>
</tr>
</format>
---------------
-- XSL code ---
<xsl:template match="/">
<!-- if error tag is present, process that -->
<xsl:apply-templates select="//error"/>
<!-- else if
A. I don't find the node "format/tr[2]/td[position()>1]", or
B. The value of all td's in format/tr[2]/td[position()>1] is "NA"
call error-template -->
Don't know how to code the above conditions A and B.
<!-- else, the input XML looks good, start processing it -->
<xsl:apply-templates select="format"/>
</xsl:template>
-------------
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list