[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
Richard Sayre wrote:
I am trying to check me XML to see if any of the descendants contain a certian value. 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'" > Depending on what you are after, you may want to remove the xsl:if and change it to something like this with apply-templates on the place of your xsl:if: <xsl:template match="node-to-test[descendant-or-self::inUse = '0' ]"> ... </ which will leave the thinking about order and logic to the processor. Also, you can change descendant-or-self:: to .// (yes, the dot is supposed to be there, otherwise the search will be done from the root). That brings me to another thing. If you all you need is a stylesheet that outputs something when a certain child has a certain value, you may as well do this instead: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="inUse[.='0']">FOUND<xsl:template> <xsl:template match="text()" /> </xsl:stylesheet> The last match is to disable the default stylesheet for text nodes, the first one matches when your criterion is met. In XSLT 2.0 you can put this criterion in a parameter and then you have effectively created an XML search tool (by setting the parameter on the commandline) ;) Cheers, -- Abel Braaksma
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|