[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: RE: Muenchian technique, was (Keys on multiple el
Hi Dave, >> So in general if you're trying to assess whether two nodes are the >> same, it's important to pull out the two nodes individually. The >> only reason that you can get away with *not* using the [1] if >> you're using the generate-id() method of comparing nodes is because >> generate-id() automatically looks at only the first node in the >> node set. > > Am I right in thinking that 'the first node in the node-set' in the > para above, means the first node for which the predicate is true? No, I meant the first node in the node set passed as the argument to the generate-id() function. In other words: generate-id($node-set) is exactly the same as: generate-id($node-set[1]) When you the node set you pass to generate-id() contains more than one node, it returns a generated ID for the first node (in document order) in the node set. > I had this last week with > > $variable[generate-id(.) = generate-id(key('rows', name)[1])] > > so here the ndl in $variable is 'searched' for the first node for > which the predicate is true? Then returned as the value of the > expression? Obviously it depends on the data, but the above expression should return more than one node in some circumstances - all those nodes in the $variable node set that are the first node (in document order) returned by calling the key with their name element child as the key value. So $variable is searched for *all* nodes for which the predicate [generate-id(.) = generate-id(key('rows', name)[1])] is true. If you only got one node back from the above expression as a whole then perhaps all the nodes in the $variable node set have the same name, or those that have a different name weren't indexed by the 'rows' key, or you were using it in a context where the result of the above expression got converted to a node set containing only one node (e.g. in xsl:value-of, as an argument to string() or number(), or of course generate-id() ;). Hope that makes sense (bit worried we're starting to talk at cross purposes). 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
|