【问题标题】:XML XQuery Multiple Child ElementsXML XQuery 多个子元素
【发布时间】:2017-04-27 07:06:34
【问题描述】:

我需要找到一种方法来使用 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>

谁只有一个受抚养人。

谢谢。

【问题讨论】:

  • 请发布您的示例 XML 输入...
  • 您是要选择拥有多个受抚养人的员工还是什么?

标签: xml xquery


【解决方案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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-19
    • 2020-07-01
    • 1970-01-01
    相关资源
    最近更新 更多