Я пытаюсь написать xpath, который будет захватывать значения внутреннего текста следующих тегов, в идеале я хотел бы использовать оператор OR, чтобы я мог выбрать один xpath для выделения текста: Pay или Оплачено в обоих случаях.
кейс 1
<td>
<a class="btn btn-success">Pay</a>
<div class="display:none"></div>
<div class="display:none"></div>
<div class="display:none"></div>
<div class="display:none"></div>
<div class="display:none"></div>
</td>
кейс 2
<td>
<div class="display:none"></div>
<div class="display:none"></div>
<div class="display:none"></div>
<div class="display:none"></div>
Paid
<div class="display:none"></div>
</td>
Подход, который я сейчас пытаюсь использовать, заключается в том, чтобы сначала попытаться и просто заставить xpath игнорировать все <div class="display:none"></div>
, потому что xpath
//td/text()
просто заканчивает сбором всех пустых тегов div.
Я опробовал эти подходы, чтобы избежать пустых тегов:
//td::child[@text='Pay' OR @text='Paid']
//td/text()
//td::child[not(@class="display:none")]
Эти xpath-ы в конечном итоге привыкают к извлечению данных с помощью cheerio.js. Другой подход, который я еще не изучал, - это попытаться перебрать результаты из //td/text()
Кто-нибудь сталкивался с такой проблемой раньше?