在 REST 中传递一个变量 POST
Pass a variable in REST POST
我试图根据 the docs 将变量传递给 BaseX 查询,但我一直收到未定义变量的错误。为什么?
Stopped at C:/Program Files (x86)/BaseX/webapp, 1/23:
[XPST0008] Undefined variable $which.
这是我正在测试的查询:
<query xmlns="http://basex.org/rest">
<text>//greeting[position()=$which]</text>
<variable name="which" value="0"/>
<context><xml><greeting/></xml></context>
</query>
使用默认凭据 CURL 到本地服务器
curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -d "<query xmlns=\"http://basex.org/rest\"><text>//greeting[position()=$which]</text><variable name=\"which\" value=\"0\"/><context><xml><greeting/></xml></context></query>" http://localhost:8984/rest
如 REST documentation of BaseX 所述,您需要在查询字符串的序言中声明变量:
<query xmlns="http://basex.org/rest">
<text>
declare variable $which as xs:integer external;
//greeting[position() = $which]
</text>
<variable name="which" value="1"/>
<context><xml><greeting/></xml></context>
</query>
此外,我已经将 $which
的值设置为 1
(在 XPath 中,计数总是从 1 开始)。
我试图根据 the docs 将变量传递给 BaseX 查询,但我一直收到未定义变量的错误。为什么?
Stopped at C:/Program Files (x86)/BaseX/webapp, 1/23:
[XPST0008] Undefined variable $which.
这是我正在测试的查询:
<query xmlns="http://basex.org/rest">
<text>//greeting[position()=$which]</text>
<variable name="which" value="0"/>
<context><xml><greeting/></xml></context>
</query>
使用默认凭据 CURL 到本地服务器
curl -X POST -H "Authorization: Basic YWRtaW46YWRtaW4=" -d "<query xmlns=\"http://basex.org/rest\"><text>//greeting[position()=$which]</text><variable name=\"which\" value=\"0\"/><context><xml><greeting/></xml></context></query>" http://localhost:8984/rest
如 REST documentation of BaseX 所述,您需要在查询字符串的序言中声明变量:
<query xmlns="http://basex.org/rest">
<text>
declare variable $which as xs:integer external;
//greeting[position() = $which]
</text>
<variable name="which" value="1"/>
<context><xml><greeting/></xml></context>
</query>
此外,我已经将 $which
的值设置为 1
(在 XPath 中,计数总是从 1 开始)。