[xquery-talk] RE: aggregate , grouping

fatma helmy fatmahelmy2000 at yahoo.com
Thu Dec 22 04:16:11 PST 2005


dear john snelson
thanks very much , you supplied me by the code i need
to count the node repetition/path. i need to attach to
the nodes also the attribute names count and values
count.
i attached example of the input xml file and the
output summary i want to get.
please , read the attached file

--- John Snelson <jsnelson at sleepycat.com> wrote:

> This query should do what you want:
> 
> declare function local:pathOfNode($node)
> {
>    if(empty($node/..)) then ""
>    else concat(local:pathOfNode($node/..), "/",
> local-name($node))
> };
> 
> let $paths := for $n in //* return
> local:pathOfNode($n)
> for $p in distinct-values($paths)
> return concat($p," count is ",count($paths[.=$p]))
> 
> As you can see the query is not exactly simple to
> write. It does make me 
> wonder what it is that you are trying to acheive,
> and whether there 
> would be a better way to do it.
> 
> John
> 
> David Carlisle wrote:
> >   the oupt of the xquery i need is the following:-
> >   trans/item count is 2
> >   trans/item/elem/ count is 2
> > 
> > It's a lot easier to do this sort of thing in
> xslt, but in xquery I
> > suppose you'd do something like
> > 
> > <x>
> >  <trans id="1">
> >    <item>
> >          <elem><elem> it </elem></elem>
> >    </item>
> >   </trans>
> >   <trans id="2">
> >      <item>
> >          <elem><elem> is </elem></elem>
> >     </item>
> >   </trans>
> > </x>
> > 
> > 
> > 
> > 
> > for $n in distinct-values(//*/name())
> > return
> > ("
> > count",$n,count(//*[name()=$n]))
> > 
> > 
> > $ saxon8q -s count.xml count.xq
> > <?xml version="1.0" encoding="UTF-8"?>
> > count x 1
> > count trans 2
> > count item 2
> > count elem 4
> > 
> > David
> > 
> >
>
________________________________________________________________________
> > This e-mail has been scanned for all viruses by
> Star. The
> > service is powered by MessageLabs. For more
> information on a proactive
> > anti-virus service working around the clock,
> around the globe, visit:
> > http://www.star.net.uk
> >
>
________________________________________________________________________
> > _______________________________________________
> > talk at xquery.com
> > http://xquery.com/mailman/listinfo/talk
> 
> 
> -- 
> John Snelson, Berkeley DB XML Engineer
> Sleepycat Software, Inc
> http://www.sleepycat.com
> 
> Contracted to Sleepycat through Parthenon Computing
> Ltd
> http://blog.parthcomp.com/dbxml
> 




__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: example.doc
Type: application/msword
Size: 23552 bytes
Desc: 1261733598-example.doc
Url : http://xquery.com/pipermail/talk/attachments/20051222/3107d004/example-0001.doc


More information about the talk mailing list