Правильный синтаксис XPath

Я пытаюсь получить доступ к атрибуту предыдущего брата, но это оказывается трудным.

Таким образом, в основном веб-страница, которую я пытаюсь вычистить, ужасна, а теги привязки используют crappy onclick вместо href. Глупо, я знаю. Я пытаюсь сначала найти тег привязки, содержащий онклик с window.open('servletLinkJunkHere...'), а затем перейти к предыдущему брату, который является img пометить и извлечь src атрибут от него.

<img src="https://web-answers.ru/wp-content/uploads/2019/03/warning.gif" ALT="blah blah blah" STYLE="position:relative;top:2px;cursor:help;">
<a href="#" onclick="javascript:window.open('servletLinkJunkHere...')>

И вот xpath, который я пытаюсь использовать:

$url_pre = 'a[onclick*="'servletLinkJunkHere...'"]/preceding-sibling::img/@src';

Любые идеи о том, как я могу сделать это? Я знаю, что это возможно, но я не совсем опытен в запросах xpath. Кроме того, есть ли хорошие ресурсы для изучения всех закоулков xpath? Спасибо!

РЕДАКТИРОВАТЬ: Итак, это то, что у меня есть, но, похоже, не возвращает ничего, кроме пустого массива.

$url_email = "EditNotificationInfoServlet?cb=on&id=" . $id . "&sessionId=1";

$url_pre = "a[contains(@onclick,'" . $url_email . "')]/preceding-sibling::IMG/@SRC";

$final_text = $crawler->filterXPath($url_pre)->each(function($crawler, $i) {
return $crawler->text();
});

-1

Решение

Я думаю, что вам нужно использовать следующий xpath:

a[contains(@onclick,'servletLinkJunkHere...')]/preceding-sibling::IMG/@SRC
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]