xsl-list
[Top] [All Lists]

Re: [xsl] Keys with duplicates should be simple

2014-01-31 14:37:02
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(_at_)gmail(_dot_)com> 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(_dot_)onwuka(_at_)gmail(_dot_)com> 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(_at_)gmail(_dot_)com> wrote:
On Fri, Jan 31, 2014 at 11:28 AM, Ihe Onwuka 
<ihe(_dot_)onwuka(_at_)gmail(_dot_)com> 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.

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--