[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: "Dimitre Novatchev" <dnovatchev@xxxxxxxxx>
Date: Wed, 27 Jun 2007 08:49:54 -0700
|
Assuming that there is a value that cannot be used as a legitimate
value for the "id" attribute, define the $pId xsl:param to have this
value.
doc('factbase.xml')/facts/class/@id = $pId
or
doc('factbase.xml')/facts/class[$pId = 'notId']
If it the class of possible values is known in advance, define the
$pId param to any value outside this class. For example, if the
possible values can only be numbers,
doc('factbase.xml')/facts/class/@id = $pId
or
doc('factbase.xml')/facts/class[not(number($pId) = number($pId))]
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
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?
regards,
Garvin
|
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
RSS 2.0 |
|
Atom 0.3 |
|
|