I don't think this can be solved with XSLT 1.0 and arbitrary numbers
of children. If you can assert a fixed and preferably low maximum
number of children, you can try
use="concat(name(*[1]),'#',name(*[2]),name(*[3]))"
etc. The # characters prevent spurious matches.
I thought it over some more and realized I can do this with two passes,
where the first pass creates an attribute whose value is the concatenation
of the child @name. I'd still like to do it in one pass, though.
I-Lin Kuo, Ann Arbor, MI
Macromedia Certified ColdFusion 5.0 Advanced Developer
Sun Certified Java 2 Programmer
Ann Arbor Java Users Group (http://www.aajug.org)
----Original Message Follows----
From: "J.Pietschmann" <j3322ptm(_at_)yahoo(_dot_)de>
Reply-To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: Re: [xsl] concatenated key
Date: Wed, 23 Apr 2003 00:43:15 +0200
I-Lin Kuo wrote:
Given a node, I'm trying to identify/pull out those nodes in the document
having the same set of identically named child nodes
....
The way I'm thinking about doing this is to construct an xsl:key where the
value of the key consists of a concatenation of all the @name of its
children and then do a select on the key. However, I can't figure out what
expression I should have for the use="" attribute of xsl:key, and
I don't think this can be solved with XSLT 1.0 and arbitrary numbers
of children. If you can assert a fixed and preferably low maximum
number of children, you can try
use="concat(name(*[1]),'#',name(*[2]),name(*[3]))"
etc. The # characters prevent spurious matches.
J.Pietschmann
_________________________________________________________________
Add photos to your e-mail with MSN 8. Get 2 months FREE*.
http://join.msn.com/?page=features/featuredemail
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list