This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: question with using Muenchian/xsl:key (Re: sort/group/count probl em)
At 00/11/11 23:30 +0000, David Carlisle wrote:
> >
> > key('items-by-itemid', @itemid) returns all items with the same @itemid in
> > the entire XML document. I just want all items with the same @itemid in
> > each of the itemlist element, how can I do that?
>
>don't you just want to replace
>
><xsl:key name="items-by-itemid" match="item" use="@itemid"/>
>
>by something like
>
><xsl:key name="items-by-itemid" match="item"
>use="concat(generate-id(..),@itemid)"
>/>
>
>so that your key values are all specific to a given itemlist.
>
>Not that I've tried it....
This is precisely the basis of a section of my instructor-led tutorial and
exercise to do sub-tree subsetting of the xsl:key facility, but with one
addition.
I teach use="concat(generate-id(subtree-root-expression),'
',value-expression)" because of the remote (but possible) synthesis of
ambiguous use values. If the generated id of two nodes were "N1" and
"N12", and the corresponding value expressions were coincidentally "23" and
"3", then the values would be "N123" and "N123".
Since the generated id is always a name token, and the name token can never
have a space character, the space is an effective delimiter to guarantee
uniqueness.
I hope this helps.
..................... Ken
--
G. Ken Holman mailto:gkholman@CraneSoftwrights.com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (Fax:-0995)
Web site: XSL/XML/DSSSL/SGML services, training, libraries, products.
Book: Practical Transformation Using XSLT and XPath ISBN1-894049-05-5
Article: What is XSLT? http://www.xml.com/pub/2000/08/holman
Next public instructor-led training: 2000-12-03/04,2001-01-27,
- 2001-02-21,2001-03-26,2001-04-06/07
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list