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

Re: Variable in XPath

Subject: Re: Variable in XPath
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Wed, 27 Jun 2007 15:55:22 +0100
Re:  Variable in XPath
On 6/27/07, Garvin Riensche <g.riensche@xxxxxxx> wrote:
Hello,

I hope that anyone can help me with the following. I want to write a
stylesheet that is used to check if an element (class) with a special ID
which is given as variable from the commandline exists in the source or
not. If no variable is supplied I want to test if there are "class"
nodes at all. Of course it's no problem to check if a node with a
special ID exists or not. But what do I use as default value of the
variable so that all "class" nodes are selected if no variable is supplied.

(not working) example:
XML:
<facts>
   <class id="2" owner="1" name="A"/>
   <class id="3" owner="1" name="B"/>
<facts>

XSLT:

<xsl:variable name="id" select="attribute::*"/>

<xsl:template match="//condition/and-condition">
[...]
<xsl:when test="doc('factbase.xml')/facts/class[@id eq $id]">
[...]

The test should be true if $id is set to "2" or "3" and if $id is not
set at all. So, the key is the comparison "@id eq $id" and the default
value of $id. "attribute::*" as default value is obviously wrong. Which
default value do I have to use to test if class nodes exist at all?

Seems like a long-winded way of just saying you want to check if <class> exists:


<xsl:when test="doc('factbase.xml')/facts/class">

If you then want to do something specific if the @id eq $id then add a
condition inside the xsl:when.

A case of wood-for-the-trees? (or one too many beers for me at lunch?)

--
http://andrewjwelch.com

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.