我有一个非常大的测试检查事物的顺序,我想忽略属性baz
等于attri
的{{1}}元素,这就是我所知道的尝试过,但它似乎没有正常工作。无论属性如何,似乎都忽略了y
:
上下文:
baz
测试:
jd:foo|jd:bar|jd:baz[@attri != 'y']|jd:bam
答案 0 :(得分:2)
您的上下文不仅排除了包含baz
等于@attri
的{{1}}个元素,还排除了包含 no 属性的y
个元素。这样:
baz
表示jd:baz[@attri != 'y']
必须具有baz
属性,且不得为@attri
。因此,y
等节点将不成为上下文的一部分,因为它不包含该属性。这将包括上下文元素,如<baz>...</baz>
。
如果您只想排除<baz attri='z'>
元素(但不包括那些没有该属性的元素),则必须使用:
<baz attri='y'>
选择具有baz[not(@attri = 'y')]
的所有baz
个元素并取消该集合。此将包含没有@attri='y'
属性的元素。
如果要考虑没有属性的元素,这同样适用于您的测试。