2010-07-01 3 views
2

Этот вопрос может быть немного конкретным, но тестовая программа im writing использует XPath для поиска данных, которые мне нужны в HTML. Этот фрагмент HTML (найденный здесь) - это то, что я пытаюсь разобрать.XPath Text Search/Sibling Selection

<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>», чтобы получить желаемый результат. Мне было интересно, какой вопрос я могу использовать, чтобы найти это. Любая помощь очень ценится.

+0

Хороший вопрос (+1). См. Мой ответ для одного выражения XPath, которое выбирает нужный узел. –

ответ

1

Применение:

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

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

+0

Работал отлично – user380776

0
//tr[td = "1"]/td[2]/a 

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

+0

Спасибо за ответ, но когда я делаю «// table [@ border = '0' и @ cellspacing = '0' и @ cellpadding = '0']/tr [td = '1']/td [2]/a "мой запрос ничего не возвращает, я подозреваю, что это связано с тем, что в первом из них не было периода, поэтому, когда я пытался" // table [@ border = '0 "и @ cellspacing =' 0 'и @ cellpadding =' 0 ']/tr [td = '1.']/td [2]/a «моя программа вышла из строя (как это обычно бывает при вводе неверных команд xpath). – user380776

+0

http://stackoverflow.com/questions/247135/using-xpath-to-search-text-containing- – Sjoerd