2017-04-27 5 views
0

Ich brauche einen Weg zu finden, um zu sehen, ob übergeordnetes Element mehr als ein untergeordnetes Element hat XQuery mitXML XQuery Mehrere untergeordneten Elemente

let $d:=doc("/Users/stefan.kenyon/company.xml") 
for $e in $d/companyDB/employees/employee[dependents] 
return $e/lname 

Das ist meine Abfrage ist, und es gibt alle Mitarbeiter mit Angehörigen.

Worauf ich Hilfe brauche ist, wie man die Angestellten nach der Anzahl der abhängigen Personen sortiert. So wird die geänderte Abfrage zurückgeben

Mitarbeiter # 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> 

Wer zwei unterhalte,

Aber Rückkehr NICHT

Mitarbeiter # 2

<dependents> 
    <dependent> 
     <dependentName>Johnny</dependentName> 
     <sex>M</sex> 
     <dob>04-APR-1997</dob> 
     <relationship>Son</relationship> 
    </dependent> 
<dependent> 

Wer nur eine hat abhängig.

Danke.

+0

Bitte senden Sie Ihre Beispiel-XML-Eingabe ... – har07

+0

Und wollten Sie Mitarbeiter auswählen, die mehr als nur abhängig hat oder was? – har07

Antwort

1

Keines Ihrer Eingabe-Beispiele ist wohlgeformtes XML, also müssen wir etwas raten. Aber der einfachste Weg, um zu testen, ob es zwei oder mehr unterhalt ist, ob abhängig zu testen [2] existiert, was gibt Ihnen so etwas wie:

for $e in $d/companyDB/employees/employee[dependents/dependent[2]] 

Wenn Sie etwas mehr lesbar bevorzugen, können Sie sich vorziehen,

for $e in $d/companyDB/employees/employee[count(dependents/dependent) ge 2] 
Verwandte Themen