无法从兄弟元素中截取<input />的属性

时间:2015-04-15 16:04:24

标签: php symfony web-scraping goutte domcrawler

我正在尝试使用Symfony2,Goutte和DomCrawler来抓取一些数据。我有一个棘手的情况,我需要在<td>内获取属性的值。

工作部分:

    $query = "//td[normalize-space(text()) = 'Event Title']/following-sibling::td[1]";
    $crawler->filterXPath($query)->each(function($crawler, $i) {
        echo $crawler->text();// . $i . PHP_EOL;
    });


<tr>
    <td>Event Title</td> 
    <td>the title is here</td> 
</tr>
好吧,现在是:

<tr>
    <td>Event Title</td> 
    <td><input value="thisiswhatIneed"></td> 
</tr>

我正在尝试更改选择器

$query = "//td[normalize-space(text()) = 'Presenter']/following-sibling::td[1]/input[value]"; 

知道如何继续遍历,以便我可以访问<input>以获取它的属性值=“”是什么?

1 个答案:

答案 0 :(得分:1)

由于valueinput的属性,因此您需要稍微更改您的xpath查询:

$query = "//td[normalize-space(text()) = 'Presenter']/following-sibling::td[1]/input/@value"; 

查看示例herehere