Mega Code Archive

 
Categories / XML / Xquery
 

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>