Два уровня содержится в XPath - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть XPath:

//tr[contains(td, 'Europe')]

, который работал, когда у меня было это:

<tr>
  <td></td>
  <td>Europe</td>
  <td></td>
</tr>

, но теперь у меня есть это:

<tr>
  <td></td>
  <td><a>Europe</a></td>
  <td></td>
</tr>

Какмогу ли я получить XPath сейчас (основываясь на том факте, что там находится Европа).

Я пытался:

//tr[contains(a, "Europe")]

и

//tr[contains(text(), "Europe")]

и многие другиеглупости без успеха.

1 Ответ

4 голосов
/ 21 апреля 2011
//tr[contains(td, 'Europe')]

Это должно работать с обеими схемами, поскольку fn:contains() приводит оба аргумента к строкам.

Я вижу проблему с другой схемой, где может быть более одного элемента td.Для этого случая вы должны использовать:

//tr[td[contains(.,'Europe')]]
...