我需要找到一种方法来查看父元素是否具有使用XQuery的多个子元素
let $d:=doc("/Users/stefan.kenyon/company.xml")
for $e in $d/companyDB/employees/employee[dependents]
return $e/lname
这是我的查询,它会返回所有有家属的员工。
我需要帮助的是如何根据他们有多少家属来对员工进行排序。因此修改后的查询将返回
员工#1
<dependent>
<dependentName>Michael</dependentName>
<sex>M</sex>
<dob>01-JAN-1978</dob>
<relationship>Son</relationship>
</dependent>
<dependent>
<dependentName>Alice</dependentName>
<sex>F</sex>
<dob>31-DEC-1978</dob>
<relationship>Daughter</relationship>
</dependent>
<dependent>
谁有两个家属,
但不要返回
员工#2
<dependents>
<dependent>
<dependentName>Johnny</dependentName>
<sex>M</sex>
<dob>04-APR-1997</dob>
<relationship>Son</relationship>
</dependent>
<dependent>
谁只有一名受抚养人。
感谢。
答案 0 :(得分:1)
您的输入示例都不是格式良好的XML,因此我们必须做一些猜测。但是,测试是否有两个或更多依赖项的最简单方法是测试依赖[2]是否存在,这给出了类似的东西:
for $e in $d/companyDB/employees/employee[dependents/dependent[2]]
如果您更喜欢更具可读性的内容,则可能更喜欢
for $e in $d/companyDB/employees/employee[count(dependents/dependent) ge 2]