w3schools tutorial node make how expressions attribute and xml xpath xquery

xml - tutorial - XQuery mientras usa valores-distintos()



xpath node (4)

Archivo XML

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

Estoy usando siguiente XQuery -

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

El resultado que estoy esperando es - Chandigarh Mumbai New Delhi

pero obteniendo - Chandigarh Chandigarh Mumbai Mumbai New Delhi New Delhi New Delhi

Por favor, dime ¿dónde me estoy equivocando?


Ahora está llamando distinct-values en cada uno de los valores por separado. distinct-values devuelve los valores distintos en una secuencia, pero la secuencia ahora solo consiste en un elemento. Debería llamar distinct-values(...) donde ... es la secuencia de nombres de ciudades.


pls intente esto -

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

He comprobado lo mismo con baseX 7.1 y estoy trabajando sin problemas como esperabas :)


La función de valores distintivos

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>


La función de valores distintivos se usa
artículos únicos

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