|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Key function using key strings from msxsl:node-set
Hi Gennady,
> Actually it gives Person by Address node-set, not a string. If you
> use this key, you must supply an Address **element**, which is a
> child of the Person element you are looking for. You are supplying a
> string and therefore getting nothing (as it should be).
That's not exactly true. If the expression that you use in the use
attribute of xsl:key evaluates to a node set, then you get a number of
entries for the matched node, one for each node in the node set. The
*value* for these keys is still a string value, just a string value of
the node.
So in:
<xsl:key name="PersonByAddress" match="/People/Person"
use="Address" />
then given that each Person has just one Address, the use attribute
returns a single Address element. The Person element's key value is
the string value of that Address element. It's exactly the same as
defining the key as:
<xsl:key name="PersonByAddress" match="/People/Person"
use="string(Address)" />
Likewise, when you access a key with the key() function, the second
argument always gets converted to a string. There's no need to make
sure that the two expressions (when defining the key and when using
the key) have the same object type.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
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
|

Cart








