我有这样的XML
<div class="yay">
<div class="foo"></div>
<div class="foo"></div>
<div class="bar"></div>
<div class="foo"></div>
<div class="bar"></div>
<div class="foo"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
有没有办法选择类是"foo"的第n个div?
我会选择所有的泡沫 //div[@class="yay"/div[@class="foo"]
如果我想选择foo#3我该怎么做?就像是:
//div[@class="yay"/div[@class="foo"][3] ?
Dim*_*hev 24
这是XPath中最常见的FAQ之一.
用途:
(//div[@class="yay"]/div[@class="foo"])[3]
Run Code Online (Sandbox Code Playgroud)
说明:
XPath伪运算符的//优先级(优先级)低于[]运算符.
从而
//div[@class="yay"]/div[@class="foo"][3]
Run Code Online (Sandbox Code Playgroud)
意思是:
选择div其class属性具有该值的每个属性,"foo"并且(该div)是div其父级的第三个子级.
如果有多个父div元素具有三个或更多此类子元素,则会选择所有第三个子元素.
与许多表达式语言一样,覆盖内置优先级的方法是使用括号.