[英]MarkLogic 8 and server-side JavaScript - XPath Queries on Sequences
在XQuery中,您可以非常有效地对返回序列的API函数执行XPath查询:
fn:collection("abstract")//author
使用服务器端JavaScript似乎不可能。 您可以循环访问序列,并在各个文档上执行XPath查询,但是效率不高:
var authors = [];
for ( var doc of fn.collection("abstract")){
authors.push( doc.xpath("//author") );
}
是否有任何计划提供此功能,或者有允许它的解决方法?
当然,我们希望不断改进Javascript API,但总的来说,Javascript与JSON更好地结合,XQuery与XML更好地结合:这并不奇怪,因为每种语言在设计时都考虑了这些数据格式。
对于特定的情况,您还可以使用DOM API: doc.getElementsByTagName("author")
。 它的开销将比xpath调用少。 要知道的另一件事是,您可以将完整的XPath作为xpath的参数,例如
anydoc.xpath("collection('abstract')//author")
这将为您提供“摘要”中的所有文章,无论它们在什么文档中。
您可以使用toArray()函数从ValueIterator获取数组,如下所示:
fn.collection("abstract").toArray();
有关更多信息,请参见:
http://docs.marklogic.com/guide/jsref/api#id_90070
希望能有所帮助,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.