Hi Tony,

If you are able to utilize xsl:key, you might..

Kind regards,
Geert

>


drs. G.P.H. (Geert) Josten
Consultant


Daidalos BV
Hoekeindsehof 1-4
2665 JZ Bleiswijk

T +31 (0)10 850 1200
F +31 (0)10 850 1199

mailto:[email protected]
http://www.daidalos.nl/

KvK 27164984

P Please consider the environment before printing this mail.
De informatie - verzonden in of met dit e-mailbericht - is afkomstig van 
Daidalos BV en is uitsluitend bestemd voor de geadresseerde. Indien u dit 
bericht onbedoeld hebt ontvangen, verzoeken wij u het te verwijderen. Aan dit 
bericht kunnen geen rechten worden ontleend.

> From: [email protected]
> [mailto:[email protected]] On Behalf Of
> Tony Mariella
> Sent: donderdag 18 februari 2010 19:03
> To: [email protected]
> Subject: RE: [MarkLogic Dev General] Distinct Nodes/Value Functions
>
> I wonder if I should be doing this in XSLT instead of Xquery..
>
> Any insights ?
>
> -Tony
>
>
>
>
>
> ________________________________
>
> From: [email protected]
> To: [email protected]
> Subject: RE: [MarkLogic Dev General] Distinct Nodes/Value Functions
> Date: Thu, 18 Feb 2010 12:04:00 -0500
>
> I'm also having issues with Time Limit Exceeded for deep-equal.
>
>
>
> ________________________________
>
> From: [email protected]
> To: [email protected]
> Date: Thu, 18 Feb 2010 08:55:08 -0800
> Subject: Re: [MarkLogic Dev General] Distinct Nodes/Value Functions
>
>
> Would JSON be a useful alternative? JSON conversion is built
> in as xdmp:to-json.
>
> wunder
>
> On Feb 18, 2010, at 8:48 AM, Tony Mariella wrote:
>
>
>
>       Can you think of a way to return the data as a CSV output ?
>
>       -Tony
>
>
>       > Date: Wed, 17 Feb 2010 12:54:25 -0500
>       > To: [email protected]
>       > From: [email protected]
>       > Subject: RE: [MarkLogic Dev General] Distinct
> Nodes/Value Functions
>       >
>       > At 2010-02-17 11:49 -0500, Tony Mariella wrote:
>       > >The Tall Rd items are different than the Short Rd items.
>       > >I'm trying to de-dupe the items with the caveat that
> if the testVal
>       > >tag is set,
>       > >then collapse all identical items containing a blank
> testVal tag.
>       >
>       > But you didn't say that the first time. :{)}
>       >
>       > ><results>
>       > > <item>
>       > > <addr>24 Short Rd</addr>
>       > > <city>Baltimore</city>
>       > > <state>MD</state>
>       > > <testVal>TEST1</testVal>
>       > > </item>
>       > > <item>
>       > > <addr>55 Tall Rd</addr>
>       > > <city>Orlando</city>
>       > > <state>FL</state>
>       > > <testVal/>
>       > > </item>
>       > ></results>
>       >
>       > Spelling out your requirement in words, backing it up
> with the
>       > example really helps.
>       >
>       > I hope the answer below helps.
>       >
>       > . . . . . . . . . . . Ken
>       >
>       >
>       > T:\ftemp>call xquery tony2.xq
>       > <?xml version="1.0" encoding="UTF-8"?>
>       > <results>
>       > <item>
>       > <addr>24 Short Rd</addr>
>       > <city>Baltimore</city>
>       > <state>MD</state>
>       > <testVal>TEST1</testVal>
>       > </item>
>       > <item>
>       > <addr>55 Tall Rd</addr>
>       > <city>Orlando</city>
>       > <state>FL</state>
>       > <testVal/>
>       > </item>
>       > </results>
>       > T:\ftemp>type tony2.xml
>       > <results>
>       > <item>
>       > <addr>24 Short Rd</addr>
>       > <city>Baltimore</city>
>       > <state>MD</state>
>       > <testVal/>
>       > </item>
>       > <item>
>       > <addr>24 Short Rd</addr>
>       > <city>Baltimore</city>
>       > <state>MD</state>
>       > <testVal/>
>       > </item>
>       > <item>
>       > <addr>24 Short Rd</addr>
>       > <city>Baltimore</city>
>       > <state>MD</state>
>       > <testVal>TEST1</testVal>
>       > </item>
>       > <item>
>       > <addr>55 Tall Rd</addr>
>       > <city>Orlando</city>
>       > <state>FL</state>
>       > <testVal/>
>       > </item>
>       > <item>
>       > <addr>55 Tall Rd</addr>
>       > <city>Orlando</city>
>       > <state>FL</state>
>       > <testVal/>
>       > </item>
>       > <item>
>       > <addr>55 Tall Rd</addr>
>       > <city>Orlando</city>
>       > <state>FL</state>
>       > <testVal/>
>       > </item>
>       > </results>
>       >
>       > T:\ftemp>type tony2.xq
>       > declare function local:distinct-items ($items as
> node()*) as node()*
>       > {
>       > (:walk through the information finding unique members:)
>       > let $unique := for $i at $ipos in $items
>       > let $before_i := subsequence( $items, 1, $ipos - 1 )
>       > where every $bi in $before_i
>       > satisfies not( deep-equal($bi, $i) )
>       > return $i
>       > (:rearrange the information to isolate the non-testVal info:)
>       > let $interim := for $u in $unique
>       > return <interim>
>       > <compare>{$u/node() except $u/testVal}</compare>
>       > {$u}
>       > </interim>
>       > (:walk through the rearranged information de-duping
> those without a
>       > value for testVal and for those with testVal removing
> all the same
>       > without it:)
>       > for $each in $interim return
>       > if ( string( $each/item/testVal ) )
>       > then $each/item (:because this has testVal:)
>       > else if ( some $i in $interim except $each
>       > satisfies deep-equal( $i/compare, $each/compare ) )
>       > then () (:because the other must have testVal:)
>       > else $each/item (:because none have testVal:)
>       > };
>       >
>       > <results>
>       > { local:distinct-items( doc('tony2.xml')/results/item ) }
>       > </results>
>       > T:\ftemp>rem Done!
>       >
>       >
>       >
>       >
>       > --
>       > XSLT/XQuery/XPath training after http://XMLPrague.cz
> <http://xmlprague.cz/>  2010-03-15/19
>       > XSLT/XQuery/XPath training: San Carlos, California
> 2010-04-26/30
>       > Vote for your XML training:
> http://www.CraneSoftwrights.com/q/i/
>       > Crane Softwrights Ltd. http://www.CraneSoftwrights.com/q/
>       > Training tools: Comprehensive interactive XSLT/XPath
> 1.0/2.0 video
>       > Video lesson:
> http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
>       > Video overview:
> http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
>       > G. Ken Holman mailto:[email protected]
>       > Male Cancer Awareness Nov'07
> http://www.CraneSoftwrights.com/q/bc
>       > Legal business disclaimers:
> http://www.CraneSoftwrights.com/legal
>       >
>       > _______________________________________________
>       > General mailing list
>       > [email protected]
>       > http://xqzone.com/mailman/listinfo/general
>       _______________________________________________
>       General mailing list
>       [email protected]
>       http://xqzone.com/mailman/listinfo/general
>
>
>
>
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general

Reply via email to