#html #xpath
#HTML #xpath
Вопрос:
Мне нужно получить текст, используя приведенный ниже xpath. Я безуспешно пытался добраться до соответствующего текста.
//*[@title="Vulnerability - level 5"]/child::[contains(text(),'RESULTS:')]/text()
Комментарии:
1. лучше показывать код в тексте, а не в изображении, которое непонятно…
Ответ №1:
Я предполагаю, что ваш html-файл выглядит следующим образом:
HTML:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>title</title>
</head>
<body>
<div title="Vulnerability - level 5">
<div>RESULTS: xyz xyz <a>abc</a></div>
</div>
<div title="Vulnerability - level 4">
<div>RESULTS: xyz xyz</div>
</div>
<div title="Vulnerability - level 5">
<div>xyz xyz RESULTS: xyz xyz</div>
</div>
</body>
</html>
XPath:
//*[@title="Vulnerability - level 5"]/child::*[contains(.,'RESULTS:')]/string()
Пожалуйста, проверьте этот XPath, надеюсь, это поможет вам получить результат.
Комментарии:
1. Последний
string()
вызов функции преобразует это в выражение XPath 2.0.2. О, да, вы правы, можно заменить
string()
наtext()
, но это вернет только первый текст.3. Вы можете использовать его как
string(//*[@title="Vulnerability - level 5"]/*[contains(.,'RESULTS:')])