如何在XQuery中将字符串转换为节点?

Six*_*Bit 5 xml xquery marklogic

我想将一个字符串转换为一个节点.我有一个定义为获取节点的方法,但我拥有的值是一个字符串(它是硬编码的).如何将该字符串转换为节点?

所以,给定一个XQuery方法:

define function foo($bar as node()*) as node() {
  (: unimportant details :)
}
Run Code Online (Sandbox Code Playgroud)

我有一个字符串,我想传递给foo方法.如何将字符串转换为节点,以便该方法将接受该字符串.

Six*_*Bit 10

MarkLogic解决方案:

将字符串转换为节点的最佳方法是使用:

xdmp:unquote($string).
Run Code Online (Sandbox Code Playgroud)

相反,如果您想将节点转换为字符串,您可以使用:

xdmp:quote($node).
Run Code Online (Sandbox Code Playgroud)

语言无关的解决方案:

节点到字符串是:

fn:string($node)
Run Code Online (Sandbox Code Playgroud)

  • :)他*是*海报 (2认同)

小智 9

如果要从字符串中创建文本节点,只需使用文本节点构造函数:

text { "your string goes here" }
Run Code Online (Sandbox Code Playgroud)

或者如果您更喜欢使用字符串内容创建元素,则可以构造如下所示的元素:

element (some-element) { "your string goes here" }
Run Code Online (Sandbox Code Playgroud)


mb2*_*b21 9

如果您正在讨论包含XML标记的字符串,那么还有标准化的解决方案(来自XPath/XQuery Functions 3.0):