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 03:01:40 +0000
Right - the data is sorted but it is the amalgamation of two different
data sources with one appended to the other.

Obviously  two sorted files with one appended to the other = an
unsorted file. Any duplicates that are not consecutive are not real
duplicates in my use case.

My thanks to everybody esp Dimitre (who was the first) that tried this
out and helped me get to the bottom of this.

On Fri, Jan 31, 2014 at 1:03 AM, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote:
> I illustrated with a cut down version of the input. When I ran with
> that I too only got allison-benedikt.
>
> So now that I have a bit more faith in what I programmed, there are
> more records.
>
> The data is supposed to be in alphabetical order ... it looks like it
> is ..... but it actually is not because when I search the rest of the
> input there is another record for Mr/Ms Das in it.
>
> So the code is correct.... I was deceived by the data not being in
> sequence when I thought it was.
>
> Thank you all.
>
> On Fri, Jan 31, 2014 at 12:38 AM, Dimitre Novatchev
> <dnovatchev@xxxxxxxxx> wrote:
>> On Thu, Jan 30, 2014 at 4:19 PM, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote:
>>> <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>
>>
>>
>>
>>  Your XSLT processor must be broken.
>>
>> With XslCompiledTransform (.NET), MSXML 3, MSXML 4, AltovaXML
>>
>> and this transformation (because you didn't provide the templates that
>> are selected by the <xsl:apply-templates>):
>>
>> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>>  <xsl:output omit-xml-declaration="yes" indent="yes"/>
>>  <xsl:template match="node()|@*">
>>    <xsl:copy>
>>      <xsl:apply-templates select="node()|@*"/>
>>    </xsl:copy>
>>  </xsl:template>
>>
>> <xsl:key name="person" match="a" use="@href"/>
>>    <xsl:template match="person">
>>      <duplicate>
>>        <xsl:copy-of select="a[key('person',@href)[2]]"/>
>>      </duplicate>
>>    </xsl:template>
>> </xsl:stylesheet>
>>
>> I get the same result:
>>
>> <duplicate>
>>  <a href="/person/allison-benedikt/"/>
>>  <a href="/person/allison-benedikt/"/>
>> </duplicate>
>>
>>
>> --
>> 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.

Current Thread