【发布时间】:2019-03-15 23:28:54
【问题描述】:
我有一些看起来像这样的数据:
<wrapper>
<inner a="1"/>
<inner a="2" b="3"/>
</wrapper>
属性 b 可能出现在每个内部元素上,也可能不出现。我的目标是找到包含至少一个没有属性 b.* 的内部元素的所有文档。*
cts:not-query(cts:element-attribute-value-query(xs:QName('inner'), xs:QName('b'), '*', ("wildcarded"))))
但这不起作用,因为同一文档上的 一些 内部元素可能具有属性 b,并且非查询适用于整个片段,因此像上面示例这样的混合情况不会被退回。将其包装在元素查询中没有帮助,并且 cts:and-not-query 的行为方式似乎相同。
我也尝试过使用共现/值函数来读取相关属性 a 的值来解决问题,但这似乎也是不可能的。除了没有元素文本之外,在同现调用上可能使用邻近设置,因此属性使用相同的单词位置进行索引。
blunt xpath 有什么替代品吗?
//inner[@a and not(@b)]
【问题讨论】: