如何在一行输出中获得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