Conditional expression returning multiple expressions : if « XQuery « XML






Conditional expression returning multiple expressions


File: Data.xml
<order>
  <car model="ACC">
    <id>0001</id>
    <name language="en">name 1</name>
    <colorChoices>navy black</colorChoices>
  </car>
  <car model="BCC">
    <id>0002</id>
    <name language="en">name 2</name>
  </car>
  <car model="BCC">
    <id>0003</id>
    <name language="en">name 3</name>
  </car>
</order>

File: Query.xquery

for $prod in (doc("Data.xml")/order/car)
return if ($prod/@model = 'ACC')
       then (<accessoryid>{data($prod/id)}</accessoryid>,
            <accessoryName>{data($prod/name)}</accessoryName>)
       else <otherid>{data($prod/id)}</otherid>

Output:

<?xml version="1.0" encoding="UTF-8"?>
<accessoryid>0001</accessoryid>
<accessoryName>name 1</accessoryName>
<otherid>0002</otherid>
<otherid>0003</otherid>

 








Related examples in the same category

1.Conditional expression
2.Nested conditional expressions
3.If statement in return clause
4.Converting values without a lookup table
5.If then else stateCt