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

Subject: Re: [xsl] trying to create a node-set of attribute nodes
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Mon, 10 Mar 2003 17:38:24 +0000
Hi Robert,

> ah, this seems to explain something else i was looking at. if i have
> the path
>
>   //element[@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[@* = '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[@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


Current Thread