在 XQuery 中如何将字符串转换为节点?
我想将字符串转换为节点。 我有一个定义为获取节点的方法,但我拥有的值是一个字符串(它是硬编码的)。 如何将该字符串转换为节点?
因此,给定一个 XQuery 方法:
define function foo($bar as node()*) as node() {
(: unimportant details :)
}
我有一个要传递给 foo 方法的字符串。 如何将字符串转换为节点以便该方法接受该字符串。
I would like to convert a string into a node. I have a method that is defined to take a node, but the value I have is a string (it is hard coded). How do I turn that string into a node?
So, given an XQuery method:
define function foo($bar as node()*) as node() {
(: unimportant details :)
}
I have a string that I want to pass to the foo method. How do I convert the string to a node so that the method will accept the string.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
MarkLogic 解决方案:
将字符串转换为节点的最佳方法是使用:
相反,如果您想将节点转换为字符串,您可以使用:
与语言无关的解决方案:
节点到字符串是:
MarkLogic solutions:
The best way to convert a string into a node is to use:
Conversely if you want to convert a node into a string you would use:
Language agnostic solutions:
Node to string is:
如果您想从字符串中创建 text 节点,只需使用 text 节点构造函数:
或者如果您更喜欢使用以下命令创建 元素字符串内容,您可以构造一个 元素 ,如下所示:
If you want to create a text node out of the string, just use a text node constructor:
or if you prefer to create an element with the string content, you can construct an element something like this:
如果您谈论的是包含 XML 标记的字符串,也有标准化的解决方案(来自 XPath/XQuery Functions 3.0):
If you are talking about strings that contain XML markup, there are standardized solutions (from XPath/XQuery Functions 3.0) as well:
这个问题的答案取决于所使用的引擎。 例如,Saxon 的用户使用
saxon:parse
方法。事实上,XQuery 规范没有内置此功能。
一般来说,只有当您需要从 CDATA 部分提取一些嵌入的 XML 时,您才真正需要使用它。 否则,您可以从文件系统读取文件,或直接内联声明XML。
大多数情况下,您会使用声明性形式,而不是硬编码字符串,例如(使用Stylus studio)
The answer to this question depends on what engine is being used. For instance, users of Saxon, use the
saxon:parse
method.The fact is the XQuery spec doesn't have a built in for this.
Generally speaking you would only really need to use this if you needed to pull some embedded XML from a CDATA section. Otherwise you can read files in from the filesystem, or declare XML directly inline.
For the most you would use the declarative form, instead of a hardcoded string e.g. (using Stylus studio)
您还可以使用
fn:parse-xml(xs:string)
将当前有效的 XML 字符串转换为文档。you also can use
fn:parse-xml(xs:string)
to convert your current valid XML string into a document.