Вопрос

Используя XPath и пакет HTML Agility Pack, мне нужно выбрать destination текст с использованием color:#ff00ff.

Мой HTML выглядит так:

<table>
   <tr style="color:#ff00ff">
      <td></td>
   </tr>
   <tr>
      <td>destination</td>
   </tr>
   <tr>
      <td></td>
   </tr>
   <tr>
      <td>not destination</td>
   </tr>
</table>
Это было полезно?

Решение

/table/tr[@style = "color:#ff00ff"]/following-sibling::tr[1]/td[1]/text()

Выбирает <tr> который имеет style="color:#ff00ff", и оттуда текст первого <td> ребенок первого следующего <tr>.

Для дополнительной безопасности вы можете использовать:

tr[translate(@style, ' ', '') = "color:#ff00ff"]

Это удаляет все пробелы из значения атрибута, поэтому все становится немного более независимым от источника HTML.

Другие советы

Используя jQuery, это может выглядеть примерно так:

$('tr[style*="color:#ff00ff"]').next('tr').children().text();

Однако это во многом зависит от вашей точной структуры документа и определения стиля.Он найдет любой tr, стиль которого содержит строку «color:#ff00ff» (точно, без пробелов и т. д.).Затем из этой строки он выберет следующую одноуровневую строку и получит текстовое содержимое от всех своих прямых дочерних элементов.В вашем случае это будет один элемент столбца.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top