[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: How do I check to see if any of my descendants co

Subject: Re: How do I check to see if any of my descendants contain a certain value?
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Fri, 03 Aug 2007 15:36:29 +0200
Re:  How do I check to see if any of my descendants  co
Abel Braaksma wrote:
Richard Sayre wrote:
I am trying to check me XML to see if any of the descendants contain a
certian value.

<snip />

I can have unlimited Child Types in each type.  When I get to a
certain type, I want to check and see if this node or any descendants
of this node has a value of 0 for the inUse node.

This is what I tried but it did not work:

<xsl:if test="descendant-or-self::inUse = 0">

Change it to the following and you should be fine (you are looking for string, not for a number):
<xsl:if test="descendant-or-self::inUse = '0'" >

Sorry, my mistake. This should not change anything. In XSLT 1.0 what you specify is correct. In XSLT 2.0, you will receive an error when any node cannot be converted to an number.


In which case we'll need to know the context. How does your stylesheet look like? If you try any of my other examples, these all should work (including using '0' instead of 0).

Two things that can easily make your match fail: a context node that does not have a child equal to your test pattern, or if you test for a string, then preserved whitespace may meddle with your results (i.e., <xsl:preserve-space elements="*" /> or xml:space="preserve" on the element). To test if this is the case, change your test to:

<xsl:if test="//inUse[normalize-space(.) = '0']">

If that doesn't match when you place it in your root match (i.e, where you match '*' or '/') then there really is no inUse with '0' in your source (the above works regardless of XSLT version 1.0 or 2.0 and regardless of context) ;)

Cheers,
-- Abel Braaksma

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.