xsl-list
[Top] [All Lists]

Re: trying to create a node-set of attribute nodes

2003-03-10 10:38:24
Hi Robert,

ah, this seems to explain something else i was looking at. if i have
the path

  //element[(_at_)attr = "value"]

this will obviously select all "element"s with attribute "attr"
whose value is "value". if i were to write that out the long way, i
would get

  //element[string(@attr) = "value"]

is that right? that is, using an attribute in a string context
forces it to be converted into its "string-value" value. ok, things
are starting to make more sense.

That's more-or-less right. It's a little complicated by the fact that
when you compare a node set with a value then you're actually testing
whether *any* of the nodes in the node set are equal to that value. So
for example:

  //element[(_at_)* = 'value']

would test whether *any* of the attributes on an <element> element in
the document had the value 'value'.

But in the context of testing each individual node, yes, when you
compare a node to a string, you're actually comparing the string value
of the node to the string. And since each element can only have one
attribute named 'attr', the path:

  //element[(_at_)attr = 'value']

is equivalent to:

  //element[string(@attr) = 'value']

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list