A very quick pseudocode .... maybe this will give you some ideas.
let $codens := fn:distinct-values( //coden)
for $c in $codens return
<coden name="{$c}">
{
let $volumes := fn:distinct-values( $c//volume )
for $v in $volumes
return
<volume name="{$v}">
{
for $i in $issues := //article[volume eq $v and
coden eq $c]
return <issue name="{$i}"/>
}
</volume>
}
</coden>
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Helen Chen
Sent: Tuesday, April 06, 2010 2:29 PM
To: General Mark Logic Developer Discussion
Cc: Helen Chen
Subject: [MarkLogic Dev General] how to build the tree based on data
our data is like in the following structure
<article>...<coden></coden><volume></volume><issue></issue><paper></
paper>....</article>
the following are examples of the data, each tag <article> means one
xml in marklogic:
article 1:
<article>...<coden>AAA</coden><volume>1</volume><issue>1</
issue><paper>123</paper>....</article>
article 2:
<article>....<coden>AAA</coden><volume>1</volume><issue>2</
issue><paper>233</paper>....</article>
article 3:
<article>....<coden>AAA</coden><volume>2</volume><issue>3</
issue><paper>355</paper>....</article>
article 4:
<article>....<coden>ACD</coden><volume>5</volume><issue>2</
issue><paper>899</paper>....</article>
article 5:
<article>....<coden>ABC</coden><volume>1</volume><issue>3</
issue><paper>667</paper>....</article>
I want to build a tree list based on coden
coden
volume
issue
so based on the above example data, if I say I want to build the tree
for coden AAA, I should get:
AAA
vol 1
iss1
iss 2
vol 2
iss 3
Any suggestions on how to build it using marklogic?
Thanks, Helen
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general