Hi,
I have a long XML document like this :
<cities> <city> <name>Paris</name> <zip>75000</zip> <alt_names> <name>paris</name> </alt_names> </city> <city> <name>Cesson-Sévigné</name> <zip>35510</zip> <alt_names> <name>paris</name> </alt_names> </city> </cities>
My XQuery is supposed to return the cities whose name begin with a few letters contained in "$cityname". So I use this :
let $search := request:get-parameter("search","")
return <cities> { for $city in collection("cities")//city[starts-with(alt_names/name,$search)] return <city> {$city/name} {$city/zip} </city> } </cities>
But there is a problem with the [starts-with(alt_names/name,$search)] part. It seems that I cannot use the same tag name ("name") both in "city" and in "alt_names". The error is :
[XPTY0004] No sequence (element name { ... }, element name { ... }) allowed.
1) Is this a bug?
2) What is the equivalent in BaseX to request:get-parameter, which works in "eXist db" and affects the GET parameter (here "search") to the $search variable?
Thank you for your help,
Regards, Grégoire