2015-04-30 38 views
2

在XQuery中,可以非常有效地在它返回序列中的API函数执行XPath查询:MarkLogic 8和服务器端JavaScript XPath查询序列上

fn:collection("abstract")//author 

随着server-side JavaScript,这似乎并不可能。可以遍历序列中的循环,并在单个文档执行XPath查询,但它不能非常有效:

var authors = []; 
for (var doc of fn.collection("abstract")){ 
    authors.push(doc.xpath("//author")); 
} 

是否有计划来提供这种便利,或解决方法,以允许它?

回答

3

当然,我们希望能够改进JavaScript API,但总的来说,Javascript在JSON方面效果更好,而XQuery对XML的效果更好:并不令人惊讶,因为每种语言都是针对这些数据格式而设计的。

对于特定的情况,您也可以使用DOM API:doc.getElementsByTagName("author")。它的开销比xpath调用少一点。另一个要知道的是,你可以提供一个完整的XPath作为xpath的参数,例如

anydoc.xpath("collection('abstract')//author") 

这会给你的“抽象”的所有文章,不管他们在什么文件。