Marklogic 使用cts:query检查属性的存在性
Marklogic 使用cts:query检查属性的存在性,marklogic,Marklogic,cts:element查询(xs:QName(“elm”)、cts:and query(())将给出元素elm所在的所有片段 类似地,如果我希望所有文档的elm下都有属性(比如atr),我该怎么办 cts:element-attribute-value-query()。但是我只想检查属性是否存在,而不管它包含什么值。尝试使用通配符。元素和属性之间的一个区别是元素可以为空。属性不能匹配,因此它们应该始终匹配通配符。您可能需要启用某些字符索引以获得最佳性能 cts:element-attribute
cts:element查询(xs:QName(“elm”)、cts:and query(())
将给出元素elm所在的所有片段
类似地,如果我希望所有文档的elm下都有属性(比如atr),我该怎么办
cts:element-attribute-value-query()。但是我只想检查属性是否存在,而不管它包含什么值。尝试使用通配符。元素和属性之间的一个区别是元素可以为空。属性不能匹配,因此它们应该始终匹配通配符。您可能需要启用某些字符索引以获得最佳性能
cts:element-attribute-value-query(
xs:QName('div'), xs:QName('id'), '*'))
您可以通过一个简单的cts:element属性值查询来实现
cts:element-attribute-value-query(
xs:QName('element'), xs:QName('attribute'), '*'))
cts:element-attribute-value-query(
xs:QName('element'), xs:QName('attribute'), '*', ("wildcarded")))
若在数据库中并没有将通配符搜索设置为true,那个么还需要在cts:element属性值查询中显式地提供启用通配符的搜索
cts:element-attribute-value-query(
xs:QName('element'), xs:QName('attribute'), '*'))
cts:element-attribute-value-query(
xs:QName('element'), xs:QName('attribute'), '*', ("wildcarded")))
有关这方面的更多详细信息,您可以查看页面它是否不需要对照值进行检查(尽管任何值都是匹配的),因此需要一些时间来读取值?@mblakele,很惊讶您在这里说XML属性不能为空。我认为他们可以。他们可以有“价值”。空元素是特殊的。@mblakele,确定吗?这将返回true:let$xml1:=let$xml2:={“}返回深度相等($xml1,$xml2);-)是的,它们的比较是相同的。对我来说,这感觉不同于foo=“”
。