Текстовый поиск XPath / Выбор родного брата - PullRequest
2 голосов
/ 01 июля 2010

Этот вопрос может быть немного конкретным, но тестовая программа, которую я пишу, использует XPath, чтобы найти нужные мне данные в HTML. Этот фрагмент HTML (найденный здесь) - это то, что я пытаюсь проанализировать.

<table border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td class="textSm" align="right">1.&nbsp;</td> <!-- Location of the number is here -->
        <td align="left" nowrap>
            <a href="/stats/individual_stats_player.jsp?c_id=sf&playerID=467055" class="textSm">P Sandoval</a> <!-- Player location is here of the number is here -->
        </td>
    </tr>
</table>

Моя цель - найти имя человека, используя число, соответствующее ему, чтобы найти его. Это требует от меня найти узел по определенному тексту, содержащемуся в «td class="textSm" align="right">1. </td>», а затем найти брата этого узла «<td align="left" nowrap>», а затем найти потомка этого брата «<a href="/stats/individual_stats_player.jsp?c_id=sf&playerID=467055" class="textSm">P Sandoval</a>», чтобы получить желаемый результат. Мне было интересно, какой запрос я мог бы использовать, чтобы найти это. Любая помощь очень ценится.

Ответы [ 2 ]

1 голос
/ 01 июля 2010

Используйте

table/tr/td[starts-with(., '1.')]/following-sibling::td/a

Предполагается, что контекст (текущий узел), по которому оценивается вышеприведенное выражение XPath, является родительским для table.

0 голосов
/ 01 июля 2010
//tr[td = "1"]/td[2]/a

Для всех TR, имеющих TD, равный '1', передайте от второго дочернего TD элемент A.

...