Subject: Re: [xsl] RE: Muenchian technique, was (Keys on multiple element types) From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx> Date: Tue, 5 Feb 2002 14:35:09 +0000 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] RE: Muenchian technique, , DPawson | Thread | RE: [xsl] RE: Muenchian technique, , DPawson |
RE: [xsl] RE: Muenchian technique, , DPawson | Date | [xsl] dynamically select an element, yan bai |
Month |