[thelist] RE: [xsl] Testing for presence of node
Michael Kay
michael.h.kay at ntlworld.com
Fri Jun 21 15:36:00 CDT 2002
>
> For each category element if you want to check for
> subcategory as its children, you can do :
>
> <xsl:for-each select="//category">
>
> <xsl:if test="string-length(./*[name()=subcategory]) >0 )
> Success
> </xsl:if>
>
> <xsl:if test="string-length(./*[name()=subcategory])=0 )
> Failure
> </xsl:if>
>
> </xsl:for-each>
1. ./x is a long-winded way of writing x
2. You meant name()='subcategory' with quotes
3. ./*[name()='subcategory'] is a long-winded way of writing
./subcategory
4. The guy wants to know if the subcategory element exists, not if it
has non-empty text content.
5. Why test the same condition twice, rather than using xsl:choose?
Try instead:
<xsl:choose>
<xsl:when test="subcategory">Success</xsl:when>
<xsl:otherwise>Failure</xsl:when>
</xsl:choose>
Michael Kay
Software AG
home: Michael.H.Kay at ntlworld.com
work: Michael.Kay at softwareag.com
>
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA1
> >
> > I have an XML file that contains the following structure:
> >
> > <category>
> > <subcategory>
> > <article>
> > </article>
> > </subcategory>
> > </category>
> >
> > In my XSLT stylesheet, I need to be able to test if the <category>
> > node I'm working with contains a <subcategory> node. What's
> the best
> > way to test for the presence of this node without actually doing
> > anything with it? I was thinking <xsl:if test="something">.
> >
> > - -joeljkp
> >
> > - ---------------------------------------
> > http://www.ballsome.com
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: PGPfreeware 7.0.3 for non-commercial use
<http://www.pgp.com>
>
> iQA/AwUBPRKA7H880CLOJa2eEQJxpwCg6XhYuz/DsUThGatqbkDa99G85XAAoL8b
> GrkEiFZTOBoCy9EHV1HxOiTA
> =ASvZ
> -----END PGP SIGNATURE-----
>
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
More information about the thelist
mailing list