[
Lists Home |
Date Index |
Thread Index
]
Here are two samples of methods I tried:
<xsl:if test="Determination[. != '']">
<xsl:apply-templates select="Determination"/>
</xsl:if>
<xsl:if test="string()">
<xsl:apply-templates select="Determination"/>
</xsl:if>
Neither of those should generate an Xpath syntax error, but they do
different things. the first tests if the string value of any
Determination child of the current node is non empty.
the second is equivalent to
test="string(.)"
and tests if the string value of the current node is non empty.
so given
<foo>
<Determination/>
</foo>
the first form would test false and so not apply templates, but the
second would test true as the string value of foo is a newline two
spaces and another newline, so would apply templates to the empty
Determination child.
Note that if there is a possiblility of more than one Determination
child most likely neither form does what you want,
<foo>
<Determination>abc</Determination>
<Determination/>
</foo>
<xsl:if test="Determination[. != '']">
<xsl:apply-templates select="Determination"/>
</xsl:if>
the test here is true as there is a non-empty Determination so you
apply templates to both Determination elements, including the empty one.
If you just want to apply templates to non-empty Determination, you dont
need an xsl:if, just don't select the ones that you don't want to
process:
<xsl:apply-templates select="Determination[. != '']"/>
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
|