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

Reply via email to