XQuery/获取 URL 参数
外观
< XQuery
您想要创建一个从调用 URL 获取参数的 XQuery。
使用 HTTP Get 或 POST 命令的调用 URL 的格式为
<hostname>:<port>/<path>/xquery.xq?param1=123¶m2=456
其中param1是第一个参数,值为123,param2是第二个参数,值为456。
请注意,问号用于开始参数,而与号用于分隔参数。请记住在 & 之后包含 "amp;"。
xquery version "1.0";
let $param1:= request:get-parameter('param1', '')
let $param2:= request:get-parameter('param2', "")
return
<results>
if ($param2 = '0') then (
<message>param2 is empty</message>
) else (
<message>default message</message>
)
</results>
此外,您可以使用 XML Schema 数据类型和castable as运算符检查数据类型。
xquery version "1.0";
declare namespace request="http://exist-db.org/xquery/request";
declare namespace xs="http://www.w3.org/2001/XMLSchema";
let $myint := request:get-parameter("myint",0)
let $myint := if ($myint castable as xs:integer)
then xs:integer($myint)
else 0
let $mydecimal := request:get-parameter("mydecimal", 0.0)
let $mydecimal := if ($mydecimal castable as xs:decimal)
then xs:decimal($mydecimal)
else 0.0
return
<results>
<message>Got myint: {$myint} and mydecimal: {$mydecimal} </message>
</results>
echo-parameters.xq
xquery version "1.0";
(: echo a list of all the URL parameters :)
let $parameters := request:get-parameter-names()
return
<results>
<parameters>{$parameters}</parameters>
{for $parameter in $parameters
return
<parameter>
<name>{$parameter}</name>
<value>{request:get-parameter($parameter, '')}</value>
</parameter>
}
</results>
以下是将参数 "a=1&b=2" 发送到此 XQuery 的结果
echo-parameters.xq?a=1&b=2
<results>
<parameters>b a</parameters>
<parameter>
<name>b</name>
<value>2</value>
</parameter>
<parameter>
<name>a</name>
<value>1</value>
</parameter>
</results>
通常您希望有条件地打开转换的一部分以在调试过程中获取更多信息。
let $debug := xs:boolean(request:get-parameter('debug', ''))