2017-06-06 77 views
-3

什么是XQuery来搜索整个数据库并显示具有给定元素名称的集合名称?XQuery显示集合名称

+0

“其中有一个给定的元素名称集合名称” ......你是问如何查询属于元素的所有名称一个给定的集合? – wst

+0

否,查询以搜索数据库中的所有元素名称,并仅显示包含数据库中匹配元素名称的集合名称 – Peter

+0

因此,对于数据库中的每个元素名称,要返回任何集合的名称元素属于? – wst

回答

5

您可以通过cts:collections()词典查找找出哪些集合包含与查询匹配的文档。无论内容如何,​​您都可以使用cts:element-query()cts:true-query()来匹配名称上的元素。

把这些两种成分在一起,查询看起来是这样的:

cts:collections((),(), 
    cts:element-query(QName("namespace", "name"), cts:true-query()) 
    ) 

收集词汇必须为数据库,这是在MarkLogic 9

默认

希望帮助启用,

+0

感谢您的回复。但是我只是跑了下面的查询并没有回应,为什么?我的收藏词典是按以下方式启用的: cts:collections((),(),cts:element-query(QName(“http://www.w3.org/1999/html”,“adr_key”), cts:true-query())) – Peter

+1

我的猜测是你有错误的命名空间,或者你没有匹配的文档。 –

+1

FWIW,我的猜测和Harry的一样。 – ehennum

-2

感谢您的回复。但是我只是跑了下面的查询并没有回应,为什么?

CTS:我收集词库的方式启用集合((),(), CTS:元素查询(的QName( “http://www.w3.org/1999/html”, “adr_key”),CTS:真正的查询()))

+2

这应该是对ehennum回答的评论,而不是作为回答发布。也就是说,没有结果表明你没有任何匹配的文件。如果这看起来不正确,请发布示例文档。 –

1

以这种方式运行 - 我认为它符合您的期望。返回包含“adr_key”元素的集合。您的查询不起作用,因为您的数据位于默认名称空间中,而不是您示例中的html名称空间。这分号不能很好要么...无论如何,在这里你去 -

cts:collections((),(), 
cts:element-query(QName("", "adr_key"), cts:true-query()) 
)