正确的XPath语法

时间:2015-04-29 02:23:21

标签: php xpath domcrawler

我正在尝试访问前一个兄弟的属性,但这证明很难。

所以基本上我试图抓取的网页是可怕的,锚标签使用蹩脚的onclick而不是href。愚蠢,我知道。我正在尝试首先使用window.open('servletLinkJunkHere...')找到包含onclick的锚标记,然后移至上一个兄弟img标记,并从中提取src属性。

<IMG SRC="images/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 个答案:

答案 0 :(得分:2)

我认为您需要使用以下xpath:

{{1}}