繁体   English   中英

如何在 xpath marklogic 中的变量中传递元素名称?

[英]how to pass the element name in variable in xpath marklogic?

我的

let $doc :=
  <Test>
    <Abc>value of the element</Abc>

  </Test>

代码 -

for $i in $doc
let $x := 'Abc'
return $i/$x

结果预期“元素的值”

请帮忙!!

TIA

在您的代码示例中,您让$x变量并分配了一个字符串'Abc' 如果您想使用该字符串来查找具有该名称的元素,您可以将 XPath 调整为 select 子元素,然后在谓词过滤器中测试name()local-name() 如果您知道没有要处理的名称空间和名称空间前缀,则两者都可以工作,但最好使用local-name()

$doc/*[local-name()=$x] 

那将是 select Abc元素,但如果您只想要值,则可以 select text()节点

for $i in $doc
let $x := 'Abc'
return $i/*[local-name()=$x]/text()

或应用string() function:

for $i in $doc
let $x := 'Abc'
return $i/*[local-name()=$x]/string()

如果您知道它将是Abc元素,那么您可以消除$x变量:

for $i in $doc/Abc
return $i/string()

您可以完全消除 for 循环,只需使用 XPath 语句,如下所示:

$doc/Abc/string()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM