XPath - найти первое вхождение строки - PullRequest
3 голосов
/ 24 октября 2011

Я пытаюсь выбрать элемент привязки, сначала содержащий текст «To Be Coded», затем извлекая число из строки, используя подстроку, затем используя оператор больше чем (> 0).Это то, что у меня до сих пор:

/a[number(substring(text(),???,string-length()-1))>0]

Пример HTML-кода:

<a class="" href="javascript:submitRequest('getRec','30', '63', 'Z')">
                                    To Be Coded&nbsp;&nbsp;(23)
</a>

Моя проблема сейчас заключается в том, что я не знаю, как найти первое вхождениеоткрытая скобка.Я также не уверен, как объединить то, что у меня есть, с функцией contains (text (), «To Becode»).

Так что мой критерий выбора:

  • Должен быть якорным элементом
  • Должен содержать текст "Кодирование"
  • Должен содержать число больше 0 в скобках

Редактировать: ПолагаюЯ мог бы просто «жестко закодировать» начальную позицию для подстроки, но я не уверен, что это будет - XPath будет считать пробел перед текстом в элементе?Как бы он обработал / посчитал &nbsp; символов?

1 Ответ

2 голосов
/ 25 октября 2011

Вот попробуйте это:

a[contains(.,  'To Be Coded') and number(substring-before(substring-after(., '('), ')')) > 0]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...