2017-04-27 106 views
0

我需要找到一種方法,看父元素是否有使用XQueryXML 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

請發佈您的示例XML輸入... – har07

+0

您是否想要選擇具有多個依賴項的員工? – har07

回答

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]