我想将一个字符串转换为一个节点.我有一个定义为获取节点的方法,但我拥有的值是一个字符串(它是硬编码的).如何将该字符串转换为节点?
所以,给定一个XQuery方法:
define function foo($bar as node()*) as node() { (: unimportant details :) }
我有一个字符串,我想传递给foo方法.如何将字符串转换为节点,以便该方法将接受该字符串.
MarkLogic解决方案:
将字符串转换为节点的最佳方法是使用:
xdmp:unquote($string).
相反,如果您想将节点转换为字符串,您可以使用:
xdmp:quote($node).
语言无关的解决方案:
节点到字符串是:
fn:string($node)
如果要从字符串中创建文本节点,只需使用文本节点构造函数:
text { "your string goes here" }
或者如果您更喜欢使用字符串内容创建元素,则可以构造如下所示的元素:
element (some-element) { "your string goes here" }
如果您正在讨论包含XML标记的字符串,那么还有标准化的解决方案(来自XPath/XQuery Functions 3.0):
字符串到节点:fn:parse-xml()
节点到字符串:fn:serialize()