这是可用于此xml文件的xquery。
<results>
{
for $depen in doc("../company/dependent.xml")//dependent
where $depen/dependent_name=*
return
<row>
<dependent name="{$depen/dependent_name}"/>
{
for $emp in doc("../company/employee.xml")//employee[ssn = $depen/essn ]
return
<employee>
<emp fname="{$emp/fname}" lname="{$emp/lname}"/>
{
for $man in doc("../company/employee.xml")//employee[ssn = $emp/superssn ]
return
<manager>
<mgr fname="{$man/fname}" lname="{$man/lname}"/>
</manager>
}
</employee>
}
</row>
}
</results>
它产生下面的输出。
<results>
<row>
<dependent name="Alice"/>
<employee>
<emp fname="John" lname="Smith"/>
<manager>
<mgr fname="Franklin" lname="Wong"/>
</manager>
</employee>
</row>
<row>
<dependent name="Elizabeth"/>
<employee>
<emp fname="John" lname="Smith"/>
<manager>
<mgr fname="Franklin" lname="Wong"/>
</manager>
</employee>
</row>
<row>
<dependent name="Michael"/>
<employee>
<emp fname="John" lname="Smith"/>
<manager>
<mgr fname="Franklin" lname="Wong"/>
</manager>
</employee>
</row>
<row>
<dependent name="Alice"/>
<employee>
<emp fname="Franklin" lname="Wong"/>
<manager>
<mgr fname="James" lname="Borg"/>
</manager>
</employee>
</row>
<row>
<dependent name="Joy"/>
<employee>
<emp fname="Franklin" lname="Wong"/>
<manager>
<mgr fname="James" lname="Borg"/>
</manager>
</employee>
</row>
<row>
<dependent name="Theodore"/>
<employee>
<emp fname="Franklin" lname="Wong"/>
<manager>
<mgr fname="James" lname="Borg"/>
</manager>
</employee>
</row>
<row>
<dependent name="Abner"/>
<employee>
<emp fname="Jennifer" lname="Wallace"/>
<manager>
<mgr fname="James" lname="Borg"/>
</manager>
</employee>
</row>
</results>
如何在最终结果中删除员工和经理标签,使其在下面看起来更像这样。
<results>
<row>
<dependent name="Alice"/>
<emp fname="John" lname="Smith"/>
<mgr fname="Franklin" lname="Wong"/>
</row>
<row>
<dependent name="Elizabeth"/>
<emp fname="John" lname="Smith"/>
<mgr fname="Franklin" lname="Wong"/>
</row>
<row>
<dependent name="Michael"/>
<emp fname="John" lname="Smith"/>
<mgr fname="Franklin" lname="Wong"/>
</row>
<row>
<dependent name="Alice"/>
<emp fname="Franklin" lname="Wong"/>
<mgr fname="Franklin" lname="Wong"/>
</row>
<row>
...等等,依此类推。
我只需要知道如何重写最终的xquery即可消除最终结果中对雇员和经理节点的需要,但仍然保留该值。