2015-04-30 39 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") 

這會給你的「抽象」的所有文章,不管他們在什麼文件。