XPATH查询:如何获得两个元素?

Dam*_*ano 6 xpath

我的HTML代码是:

<table>
<tr>
<td class="data1"><p>1</td></td>
<td class="data1"><p>2</td></td>
<td class="data1"><p>3</td></td>
<td class="data1"><p>4</td></td>
</tr>
<tr>
<td class="data1"><p>5</td></td>
<td class="data1"><p>6</td></td>
<td class="data1"><p>7</td></td>
<td class="data1"><p>8</td></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我的查询是:

xpath='//tr//td[@class="data1"][4]/p'
Run Code Online (Sandbox Code Playgroud)

结果是:

<p>4</p>
<p>8</p>
Run Code Online (Sandbox Code Playgroud)

结果是正确的!但是,如果我想得到榜样:

<p>3</p> <p>4</p>

<p>7</p> <p>8</p>
Run Code Online (Sandbox Code Playgroud)

所以

[3]/p[4]/p

如何获得这两个元素<tr>

非常感谢!

Lar*_*ren 6

我认为你可能正在寻找的东西是沿袭的

[position() > 2]
Run Code Online (Sandbox Code Playgroud)

它检索前两个之后的所有元素.

  • @Damiano - 如果分别评估这两个谓词过滤器,您将获得所需的信息.如果你想在一个XPATH表达式中评估它们,那么你需要将它们组合在一个谓词过滤器中并使用`或'运算符:`[position()= 1或position()= 4]`否则,它将评估是否两个谓词过滤器都为真(并且没有元素将同时为第1和第4). (2认同)