2012-06-18 17 views
8

XML FileXQuery podczas korzystania z różnych wartości współczynnika()

<Cities> 
    <Place> 
    <City n="New Delhi"></City> 
    <City n="Chandigarh"></City> 
    <City n="Mumbai"></City> 
    </Place> 
    <Place> 
    <City n="New Delhi"></City> 
    <City n="Chandigarh"></City> 
    </Place> 
    <Place> 
    <City n="New Delhi"></City> 
    <City n="Mumbai"></City> 
    </Place> 
</Cities> 

używam następujący XQuery -

for $x in doc("sample")/Cities/Place/City 
    order by $x/@n 
    return distinct-values($x/@n) 

Wynik Oczekuję jest - Chandigarh Mumbai New Delhi

ale coraz - Chandigarh Chandigarh Mumbai Mumbai New Delhi New Delhi New Delhi

Proszę powiedz mi, gdzie się nie mylę?

Odpowiedz

8

pls spróbować -

for $x in distinct-values(doc("sample")/Cities/Place/City/@n) 
    order by $x 
    return $x 

Sprawdziłem to samo z baseX 7.1 i działa płynnie jako oczekiwany przez ciebie :)

+0

@ John - zadziałało dokładnie tak, jak się spodziewałem. Bardzo dziękuję –

+0

@ pratik- mile widziane kochanie :) – John

4

Teraz wywołujesz distinct-values dla każdej z wartości osobno. distinct-values zwraca różne wartości w sekwencji, ale teraz sekwencja składa się tylko z jednego elementu. Powinieneś zadzwonić pod numer distinct-values(...), gdzie ... jest ciągiem nazw miast.

+0

@ Simeon - Mam to, co chcesz powiedzieć. Dziękuję –

0

funkcjonują odrębne Wartości

let $items := (1,2,4,4,5,5,9,9,9,9,3,3,2) 
let $unique-items-by := distinct-values($items) 
return 
    <result> 

     <items> 
     { 
     for $item in $unique-items-by 
     return <item>{$item}</item> 
     } 
     </items> 

    </result> 
0

Wyraźną -wartość funkcji jest używana
unikatowych pozycji

let $x:=doc("/db/my.xml") 
let $unique-items := distinct-values($x) 
for $x in $unique-items 

return (
$unique-items 
) 
Powiązane problemy