【发布时间】:2016-02-15 19:37:40
【问题描述】:
这是新手问题。我最近才开始学习 XQuery 和 XPath。
考虑这个 XML
<employees>
<employee empid="1">
<ename>KING</ename>
<mgr/>
<hiredate>17-11-1981</hiredate>
</employee>
<employee empid="2">
<ename>BLAKE</ename>
<mgr>7839</mgr>
<hiredate>1-5-1981</hiredate>
<test>
<sub1>one</sub1>
<sub2>two</sub2>
</test>
</employee>
</employees>
当我执行以下 XQuery 时,
let $db := db:open("example")
for $item1 in $db/employees/employee,
$item2 in $db/employees/employee/test
return ($item1/mgr,$item1/ename,$item2/sub1)
我得到...
<mgr/>
<ename>KING</ename>
<sub1>one</sub1>
<mgr>7839</mgr>
<ename>BLAKE</ename>
<sub1>one</sub1>
我希望得到的结果是……
<mgr/>
<ename>KING</ename>
<mgr>7839</mgr>
<ename>BLAKE</ename>
<sub1>one</sub1>
这是因为 sub1 只存在于 /employee/@empid='2' 中。
有人可以指点我正确的方向吗?谢谢
【问题讨论】:
-
您的示例 XML 数据已损坏 -
<employees>元素缺少结束标记。