[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
At 2003-05-28 16:01 -0700, Rick Geimer wrote:
It is unclear to me why you are getting duplicate <maker> elements from your key() access using the <makerRef> ... because in XPath 1.0 the node set returned from your use of key() won't have duplicate nodes.
I agree that if you try to process the <makerRef> nodes, you will have duplicates ... but you said you are using "another set of keys" to get the <makers>. Assuming you have a variable of the <makerRef> elements, the function key( 'makersById', $makerRefs/@idref ) would only return 2 nodes, not three, because the three reference address only two unique nodes.
You'll have to show how your code is producing multiple <maker> elements since your prose description wouldn't appear to support the evidence.
I hope this helps.
....................... Ken
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Re: [xsl] grouping references so that they only appear once
Subject: Re: [xsl] grouping references so that they only appear once From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 29 May 2003 07:40:27 -0400 |
At 2003-05-28 16:01 -0700, Rick Geimer wrote:
I have a grouping problem that I am hoping someone can help me with. Imagine that I am transforming the following instance, and that I am currently processing the category element with the id "shoes". ... <makers> <maker id="nike">Nike</maker> <maker id="rebok">Rebok</maker> </makers> ... <products> <product> ... <makerRef idref="nike"/> </product> <product> ... <makerRef idref="nike"/> </product> <product> ... <makerRef idref="rebok"/> ... I want to get a list of all the makers that have products that reference the shoes category, but I don't want a single maker to appear more than once. I have been able to use keys to gather a list of products that reference a category, and from there I can get the makerRefs, and with another set of keys I can then get the makers, but I can't see how to ensure that each maker is only listed once since multiple products reference the same makers.
It is unclear to me why you are getting duplicate <maker> elements from your key() access using the <makerRef> ... because in XPath 1.0 the node set returned from your use of key() won't have duplicate nodes.
I agree that if you try to process the <makerRef> nodes, you will have duplicates ... but you said you are using "another set of keys" to get the <makers>. Assuming you have a variable of the <makerRef> elements, the function key( 'makersById', $makerRefs/@idref ) would only return 2 nodes, not three, because the three reference address only two unique nodes.
You'll have to show how your code is producing multiple <maker> elements since your prose description wouldn't appear to support the evidence.
I hope this helps.
....................... Ken
-- Upcoming hands-on courses: (registration still open!) - (XSLT/XPath and/or XSL-FO) North America: June 16-20, 2003
G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) ISBN 0-13-065196-6 Definitive XSLT and XPath ISBN 0-13-140374-5 Definitive XSL-FO ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath ISBN 1-894049-11-X Practical Formatting Using XSL-FO Member of the XML Guild of Practitioners: http://XMLGuild.info Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] grouping references so that t, Rick Geimer | Thread | [xsl] Attribute's default value in , Eran Hammer-Lahav |
Re: [xsl] merging readings with chi, James Cummings | Date | Re: [xsl] Attribute's default value, Eran Hammer-Lahav |
Month |