This is the mail archive of the xsl-list@mulberrytech.com mailing list .
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
> Jeni and Joerg, thank you very much for your help. > It finally worked! > I've used > <xsl:key name="labels" match="label" use="concat(../../@id, '_', @id)"/> > > I didn't understand why I have to put only label and not label/text() > > thanks again, > Matias Hello Matias, with the key-declaration above and using key('labels', ...) you always get back a nodeset which contains the matching label-elements. This is similar to any XPATH-expression "navigating" to this label element. And as you can do <xsl:value-of select="../../bla/foo/label/@id"/> you also can do <xsl:value-of select="key('labels', 'string')/@id"/> Using label/text() in the match-attribute of the key-declaration is not wrong, but ... let's say unusual. Because for creating the key, you must go one step back more: <xsl:key name="labels" match="label/text()" use="concat(../../../@id, '_', ../@id)"/> On the other hand your key() can be shorter: <xsl:value-of select="key('labels', ...)"/> with "label" in the declaration gives you the text-nodes of all matching label-elements and it's descendant elements. With label/text() only the text-nodes of the matching label-elements. Our key() has to be "key('labels', ...)/text()" to have the same effect as yours. Maybe Jeni can it explain it better, more explicitely, but I hope you can see, what I want to say ;-) Joerg XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |