У меня есть следующее HTML:
<html>
<body>
...
<h2> Blah Blah 1</h2>
<p>blah blah</p>
<div>
<div>
<table>
<tbody>
<tr><th>Col 1 Header</th><th>Col 2 Header</th></tr>
<tr><td>Line 1.1 Value</td><td>Line 2.1 Header</td></tr>
<tr><td>Line 2.1 Value</td><td>Line 2.2 Value</td></tr>
</tbody>
</table>
</div>
</div>
<div>
<div>
<table>
<tbody>
<tr><th>Col 1 Header T2</th><th>Col 2 Header T2</th></tr>
<tr><td>Line 1.1 Value T2</td><td>Line 2.1 Header T2</td></tr>
<tr><td>Line 2.1 Value T2</td><td>Line 2.2 Value T2</td></tr>
</tbody>
</table>
</div>
</div>
<h2> Blah Blah 2</h2>
<div>
<div>
<table>
<tbody>
<tr><th>XCol 1 Header</th><th>XCol 2 Header</th></tr>
<tr><td>XLine 1.1 Value</td><td>XLine 2.1 Header</td></tr>
<tr><td>XLine 2.1 Value</td><td>XLine 2.2 Value</td></tr>
</tbody>
</table>
</div>
</div>
<p>blah blah</p>
<div>
<div>
<table>
<tbody>
<tr><th>XCol 1 Header T2</th><th>XCol 2 Header T2</th></tr>
<tr><td>XLine 1.1 Value T2</td><td>XLine 2.1 Header T2</td></tr>
<tr><td>XLine 2.1 Value T2</td><td>XLine 2.2 Value T2</td></tr>
</tbody>
</table>
</div>
</div>
</body>
</html>
Я хотел бы извлечь 2-й DIV после тега h2 , который содержит данный текст.
Как вы можете заметить, в первом и втором div теги p не находятся в одинаковом положении.
Чтобы извлечь DIV после первого h2, приведенная ниже формула будет работать:
h2:contains(Blah 1) + p + div +div
Но для извлечения 2-го замена "Blah 1" на "Blah 2" не будет работать, так как тег "" p "находится в другом месте, поэтому селектор stati c будет:
h2:contains(Blah 2) + div + p +div
И что мне нужно, это формула с одним селектором, где изменение текста заставит его работать, где бы p блоков не было
Я пробовал несколько способов: например .. Селектор nth-of-type также не будет работать, потому что я знаю, что положение DIV только с h2 , который не является отцом DIV, но предшествующим родным братом ...
Помогите пожалуйста