sivabur
@sivabur
Заблокировали просто так!

Как получить элемент с классом по шаблону/маски (xpath)?

Подходит:
<div class="class1-s"> 
<div class="class1_a">

Не подходит:
<div class="class1-s1">

То есть шаблон(маска) class1**
*-любой символ (необязательный/обязательный 2 варианта нужно.)

//*[contains(@class, 'class1')].  не подходит берет всё где находит class1qq.


Использую htmlagilitypack c#
Проверяю в хроме.
  • Вопрос задан
  • 910 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Roman-Fov
<root>
	<div class="class1-s">a</div>
	<div class="class1_a">b</div>
	<div class="  class1+g 	">b</div>
	<div class="class1-s1">c</div>
	<div class="class1-s134">c</div>
	<div class="cls1-s134">c</div>
	<div class="class1-s134">c</div>
	<div c="zclass1-s1">c</div>
	<div>c</div>
</root>


Есть вариант. Выбираем сначала по starts-with и потом считаем количество символов:
/root/div[starts-with(normalize-space(@class), 'class1') and string-length(normalize-space(@class)) = string-length('class1') + 2]


Или если очень хочется регулярок, то:
/root/div[matches(normalize-space(@class), '^class1..$')]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы