Re: [xsl] Keys with duplicates should be simple

Subject: Re: [xsl] Keys with duplicates should be simple
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Fri, 31 Jan 2014 12:49:50 -0800
Ihe,

Once again, I am trying to raise the problem of how a problem should
be presented in a non-ambiguous way.

Probably this needs to be placed in the FAQs of the mailing list.



On Fri, Jan 31, 2014 at 12:36 PM, Ihe Onwuka <ihe.onwuka@xxxxxxxxx> wrote:
> Dimitre,
>
> Thank you for being the first to try out and affirm that the code gave
> the desired result. It led me to see that my real problem was in my
> interpretation of the data.
>
> Once again I'm grateful, really.
>
> Cheers.
>
> On Fri, Jan 31, 2014 at 8:16 PM, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:
>> 1.  There is no source XML document provided.
>> 2.  It isn't clear if any/all "a" element(s) must be a child of a
>> "person" element.
>> 3.  What is "key table" ? I haven't heard of such thing.
>> 4. No example of the wanted result (that should be produced when the
>> transformation is applied upon the specific provided source XML
>> document) is provided.
>> 5. The xsl:key declaration name "person" is confusing, because what is
>> matched is an "a" element -- not a "person" element
>>
>> This is obviously ambiguous and rather undefined.
>>
>> To prevent (wrong) guesses to 1 - 4 above, please enter a
>> well-defined, unambiguous question.
>>
>> Also, please, note that if the solution to a problem is unknown, it is
>> better *not* to provide any transformation code -- we know in advance
>> that this code doesn't solve the problem.
>>
>>
>>
>> On Fri, Jan 31, 2014 at 11:53 AM, 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.
>>>
>>
>>
>>
>> --
>> 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.
>



-- 
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