Search code examples
xmlxquery

how to get the correct output format


xquery version "1.0-ml";
let $letter := ("A","B")
let $number := (1,2,3)

for $i in $letter

for $j in $number
return ($i,$j)

How can I get the output format will be. Thanks

A
    1
    2
    3
    
B
    1
    2
    3

Solution

  • If you intend to have the indentation and carriage returns in the output:

    let $letter := ("A","B")
    let $number := (1,2,3)
    
    for $i in $letter
    let $line := (
       $i,
       for $j in $number
       return "    "||$j
     )
     string-join($line, "
")
    

    More concisely, using simple map operator ! instead of for loops:

    let $letter := ("A","B")
    let $number := (1,2,3)
    return
     string-join($letter ! (., $number ! ("    "||.)), "
")