Converting values with a lookup table : variable « XQuery « XML






Converting values with a lookup table


File: Data.xml

<order>
  <car model="A">
    <id>0001</id>
    <name language="en">name 1</name>
  </car>
  <car model="B">
    <id>0002</id>
    <name language="en">name 2</name>
  </car>
  <car model="B">
    <id>0003</id>
    <name language="en">name 3</name>
  </car>
  <car model="C">
    <id>0004</id>
    <name language="en">name 4</name>
  </car>
</order>

File: Query.xquery

let $modelNames := <modelNames>
                    <model code="B" name="Accessories"/>
                    <model code="C" name="Menswear"/>
                    <model code="A" name="Womens"/>
                  </modelNames>
let $cat := doc("Data.xml")/order
for $model in distinct-values($cat/car/@model)
return <li>Department: {data($modelNames/model[@code = $model]/@name)
                  } ({$model})</li>

Output:

<?xml version="1.0" encoding="UTF-8"?>
<li>Department: Womens (A)</li>
<li>Department: Accessories (B)</li>
<li>Department: Menswear (C)</li>

 








Related examples in the same category

1.Define variable in for statement
2.Compare value
3.Binding multiple variables in a quantified expression
4.Attempting to use a counter variable
5.Using a positional variable in a for clause
6.Attempting to use a positional variable with a where clause