XPath按计数查找节点

XPath按计数查找节点,xpath,Xpath,找到每个div中包含三个列表元素的h1 尝试实现以下语法: //h1[following-sibling::ul[count(li)=3]] 尝试实现以下语法: //h1[following-sibling::ul[count(li)=3]] 要匹配div下的精确h1: //div/h1[following-sibling::ul[count(li)=3]] 要匹配div下的精确h1: //div/h1[following-sibling::ul[count(li)=3]] 无法使其更短

找到每个div中包含三个列表元素的h1

尝试实现以下语法:

//h1[following-sibling::ul[count(li)=3]]
尝试实现以下语法:

//h1[following-sibling::ul[count(li)=3]]

要匹配div下的精确h1:

//div/h1[following-sibling::ul[count(li)=3]]

要匹配div下的精确h1:

//div/h1[following-sibling::ul[count(li)=3]]

无法使其更短/更简单=

//div[ul[count(li)=3]]/h1
附言:好的,这是最终决定:

//*[ul[count(li)=3]]/h1

无法使其更短/更简单=

//div[ul[count(li)=3]]/h1
附言:好的,这是最终决定:

//*[ul[count(li)=3]]/h1
我会写

//div[count(.//li)=3]/h1
但要小心:您要求每个div都包含三个列表元素,这将为您提供这些元素;接受的答案为您提供了每个元素,其中至少包含一个未编号的列表,其中正好有三个列表项,这不是一回事,尽管它可能会在这个特定的测试文档中给出相同的结果。

//div[count(.//li)=3]/h1

但要小心:您要求每个div都包含三个列表元素,这将为您提供这些元素;接受的答案为您提供了每个元素,其中至少包含一个不编号的列表,其中正好有三个列表项,这不是一回事,尽管它可能会在这个特定的测试文档中给出相同的结果。

非常好:,我认为您应该按照要求保留div,我知道这在两种情况下都是正确的,但在使用div时更准确:是的,最好保持div=并且为了可维护性,甚至添加类/id以确保它是正确的元素,但这是任何人都可以根据需要调整的最简单配置。cellent:,我认为您应该按照需要保持div,我知道这在两种情况下都是正确的,但在使用div时更准确:是的,最好保持div=并且为了可维护性,甚至添加类/id以确保它是正确的元素,但这是任何人都可以根据需要调整的最简单配置非常有用的链接,非常感谢:非常有用的链接,非常感谢:非常感谢你的精确注释。从逻辑角度来看仍然不好。该div可以放在ul元素的上方,如果它包含h1,则会被选中。它甚至不可能有ul元素,我是说,出于研究目的,编写这样的定位器是可以的,但我不建议在项目中使用它。关于需求,我们唯一知道的是问题中的内容。我同意在一个真实的项目中,一个人会寻找一个更精确的需求陈述。非常感谢你精确的注释。从逻辑的角度来看仍然不好。该div可以放在ul元素的上方,如果它包含h1,则会被选中。它甚至不可能有ul元素,我是说,出于研究目的,编写这样的定位器是可以的,但我不建议在项目中使用它。关于需求,我们唯一知道的是问题中的内容。我同意在一个真实的项目中,人们会寻找一个更精确的需求陈述。