I have an XML document:
<resultsets>
<row>
<emp_no>10001</emp_no>
<first_name>Georgi</first_name>
<last_name>Facello</last_name>
</row>
<row>
<emp_no>10002</emp_no>
<first_name>Bezalel</first_name>
<last_name>Simmel</last_name>
</row>
</resultset>
I want to write a xQuery using FLWOR to extract emp_no and first_name where emp_no is 10001 with the coressponding first name like this:
<row>
<emp_no>10001</emp_no>
<first_name>Georgi</first_name>
</row>
The code I wrote:
for $id in doc("employees.xml")//emp_no
for $first in doc("employees.xml")//first_name
where ($id/text() = '10001')
return
<row>
<id>{upper-case($id/text())}</id>
<first>{$first/text()}</first>
</row>
however, it returns a cartesian product of $id and $first,
<row>
<emp_no>10001</emp_no>
<first_name>Georgi</first_name>
</row>
<row>
<emp_no>10001</emp_no>
<first_name>Bezalel</first_name>
</row>
Do you know how to fix this using xQuery FLWOR? Thanks!