在每个div中找到包含三个列表元素的h1。 (source)
<div>
<div class="fast">
<h1>Fast</h1>
<ul>
<li>Cars</li>
<li>New Horizon</li>
<li>Chinese Food</li>
</ul>
</div>
<div class="expensive">
<h1>Expensive</h1>
<ul>
<li>Cars</li>
<li>New Horizon</li>
<li>Apple Watches</li>
</ul>
</div>
<div class="nasa">
<h1>NASA-Owned</h1>
<ul>
<li>Lunar Module</li>
<li>New Horizon</li>
</ul>
</div>
</div>
这对我有用(但我希望找到更简单的语法)
//ul/li[count(../li)=3]/../../h1
最佳答案
我会写
//div[count(.//li)=3]/h1
但是要小心:您要求的是“其中包含三个列表元素的每个div”;接受的答案将为您提供“每个元素至少包含一个未编号的列表,其中恰好包含三个列表项”,虽然在此特定测试文档上可能给出相同的结果,但这不是同一件事。
关于xpath - XPath按计数查找节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46825709/