Re: [xsl] Keys with duplicates should be simple

Subject: Re: [xsl] Keys with duplicates should be simple
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Fri, 31 Jan 2014 21:22:21 +0000
Wendell,

In this particular instance the data is as simple as what is in the
OP. There is no other data. The thread originated from my erroneous
interpretation of the data structure, thinking it  was sorted because
I looked at the top half of the file, whereas it was  one sorted file
appended to another.

I'm happy to acknowledge mine may not be a universal solution but it
worked in the context I wanted it to. It is always nice when something
you ask becomes fodder for the finer XSLT brains in the group but I
have satisficed the problem and now regret interjecting into the
discussion between my elders and betters.

I'll be swinging by Rockville when next I am in town.

On Fri, Jan 31, 2014 at 8:51 PM, Wendell Piez <wapiez@xxxxxxxxxxxxxxx> wrote:
> Ihe,
>
> If you want to query a key (and who wouldn't), then you'll be
> responsible for managing the scope of its use, assuming document-wide
> scope unless you specifically say otherwise. It won't automatically
> limit you to compare for 'duplicates' only within the parent, as does
> the grouping solution or my XPath-based solution.
>
> <xsl:apply-templates select="a/key('person-by-href', @href)[2]"/>
>
> This one does not return third or fourth occurrences of 'duplicates'.
> It only returns the second (if there is one).
>
> If your key declaration is wrong all bets are off.
>
> Cheers,
> Wendell
>
>
> On Fri, Jan 31, 2014 at 2:53 PM, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote:
>>   <xsl:import href="identity.xsl"/>
>>   <xsl:key name="person" match="a" use="@href"/>
>>
>>   <xsl:template match="person">
>>     <duplicate>
>>       <xsl:apply-templates select="a[key('person',@href)[
>> 2]]"/>
>>     </duplicate>
>>   </xsl:template>
>>
>> If it's simple I should be able to describe it simply. Here goes.
>>
>> Copy all a elements that have more than one entry in the key table
>> indexed by their value in the href attribute.
>>
>> or maybe better.......
>>
>> Create a key table using the href from each a element and copy all the
>> entries that occur more than once in it.
>>
>>
>>
>> On Fri, Jan 31, 2014 at 7:34 PM, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:
>>> On Fri, Jan 31, 2014 at 11:28 AM, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote:
>>>> http://www.biglist.com/lists/lists.mulberrytech.com/xsl-list/archives/201211/msg00170.html
>>>>
>>>> OP is using XSLT 2. OP only wants to find what things have duplicates.
>>>> Thats not a grouping problem, it's a problem that a certain variant of
>>>> for-each-group happens to solve but it's not the simplest way of
>>>> solving it.
>>>
>>>  "Things that have duplicates" is exactly what we shouldn't be seeing
>>> here -- to ambiguous (things, duplicates).
>>>
>>> And "simple" is also very subjective. Do you mean "short", or what?
>>> Does "simple" also mean efficient? Or should efficiency be of lower
>>> priority?
>>>
>>> As for "Things that have duplicates" -- see this -- just XPath 2 --
>>> not even XSLT:
>>>
>>>
>>>      http://stackoverflow.com/a/287360/36305
>>>
>>>
>>>
>>> --
>>> Cheers,
>>> Dimitre Novatchev
>>> ---------------------------------------
>>> Truly great madness cannot be achieved without significant intelligence.
>>> ---------------------------------------
>>> To invent, you need a good imagination and a pile of junk
>>> -------------------------------------
>>> Never fight an inanimate object
>>> -------------------------------------
>>> To avoid situations in which you might make mistakes may be the
>>> biggest mistake of all
>>> ------------------------------------
>>> Quality means doing it right when no one is looking.
>>> -------------------------------------
>>> You've achieved success in your field when you don't know whether what
>>> you're doing is work or play
>>> -------------------------------------
>>> To achieve the impossible dream, try going to sleep.
>>> -------------------------------------
>>> Facts do not cease to exist because they are ignored.
>>> -------------------------------------
>>> Typing monkeys will write all Shakespeare's works in 200yrs.Will they
>>> write all patents, too? :)
>>> -------------------------------------
>>> I finally figured out the only reason to be alive is to enjoy it.
>>
>
>
>
> --
> Wendell Piez | http://www.wendellpiez.com
> XML | XSLT | electronic publishing
> Eat Your Vegetables
> _____oo_________o_o___ooooo____ooooooo_^

Current Thread