Majirus,
At 08:08 AM 10/16/2004, you wrote:
Dear wendell,
I thank you very much for yours suggestions.
I think that in my case, //*[.=$nodeset] should work provided that the
'=' operator allow also comparison between nodes sets.
It does, by comparing their values. If the value of any node in the first
node set is equal to the value of any node in the second node set, the two
sets test as equal.
In your case, however, you are comparing the value of a result tree
fragment (somewhat confusingly named $nodeset) to the (string) value of
each node in the document in turn.
//*[.=$nodeset]
is the same as
/descendant-or-self::node()/child::*[self::node() = $nodeset]
which basically says "return all elements in the document that are the
child of the root or one of its descendants, keeping only those whose value
is equal to $nodeset". I.e., every element in the document whose string
value is equal to the value of $nodeset. This is a string comparison, and
will test true if the two strings are the same.
Cheers,
Wendell
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================