如何在一行输出中获得MarkLogic中XQuery的输出?
将详细说明-当我执行以下命令时:如何在一行输出中获得MarkLogic中XQuery的输出?,xquery,marklogic,Xquery,Marklogic,将详细说明-当我执行以下命令时: let $value := xdmp:forest-status( xdmp:forest-open-replica( xdmp:database-forests(xdmp:database("Documents")))) return $value 上面的查询返回了大量关于数据库“文档”林的信息,如-林id、主机id等 我只要求它只返回我的森林的“状态”。如何执行此操作?
let $value := xdmp:forest-status(
xdmp:forest-open-replica(
xdmp:database-forests(xdmp:database("Documents"))))
return $value
上面的查询返回了大量关于数据库“文档”林的信息,如-林id、主机id等
我只要求它只返回我的森林的“状态”。如何执行此操作?使用XPath选择要返回的内容
let $value := xdmp:forest-status(
xdmp:forest-open-replica(
xdmp:database-forests(xdmp:database("Documents"))))
return $value/*:state/text()
此外,无需FLWOR,您可以将其制作为一行:
xdmp:forest-status(
xdmp:forest-open-replica(
xdmp:database-forests(xdmp:database("Documents"))))/*:state/text()
或者,您可能会发现,使用更易于阅读,而不是嵌套的函数调用和大量的括号:
(xdmp:database("Documents")
=> xdmp:database-forests()
=> xdmp:forest-open-replica()
=> xdmp:forest-status()
)/*:state/text()
响应中的XML元素位于
http://marklogic.com/xdmp/status/forest
名称空间。因此,您可能需要声明名称空间(即declare namespace f=”http://marklogic.com/xdmp/status/forest“;
)并在XPath中使用前缀(即f:state
),或者像我所做的那样使用通配符*:state
使用XPath选择要返回的内容
let $value := xdmp:forest-status(
xdmp:forest-open-replica(
xdmp:database-forests(xdmp:database("Documents"))))
return $value/*:state/text()
此外,无需FLWOR,您可以将其制作为一行:
xdmp:forest-status(
xdmp:forest-open-replica(
xdmp:database-forests(xdmp:database("Documents"))))/*:state/text()
或者,您可能会发现,使用更易于阅读,而不是嵌套的函数调用和大量的括号:
(xdmp:database("Documents")
=> xdmp:database-forests()
=> xdmp:forest-open-replica()
=> xdmp:forest-status()
)/*:state/text()
响应中的XML元素位于http://marklogic.com/xdmp/status/forest
名称空间。因此,您可能需要声明名称空间(即declare namespace f=”http://marklogic.com/xdmp/status/forest“;
)并在XPath中使用前缀(即f:state
),或者像我所做的那样使用通配符*:state