微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Symfony DomCrawler:查找具有特定属性值的元素

我正在使用DomCrawler组件: http://symfony.com/doc/current/components/dom_crawler.html

我想使用CSS语法来获取具有特定属性值的元素.

这是我使用的代码

$link = $crawler->filter('#product a[data-type="bla"]');

这似乎有效,如下所示:1:

echo count($link);

但是,我永远不会比这更进一步的过滤.我不能做:

$link->filter('img')->attr('src');

这将导致以下错误消息:

The current node list is empty.

但是,我确信不知道.

我已经尝试了其他元素的语法,它总是一样的.我做错了什么或者这是不可能的(像css一样的语法,而不是xpath)

我不能跟随你的问题.使用两个软件库dom-crawler和 css-selector的当前开发版本(以及2.1.0和2.2.0版本),您提供的示例代码工作正常,考虑到以下示例HTML:
<?PHP
use Symfony\Component\DomCrawler\Crawler;

// require dependencies here    

$html = <<<'HTML'
<!DOCTYPE html>
<html>
    <body>
        <p class="message">Hello World!</p>
        <p>Hello Crawler!</p>
        <div id="product">
            <a data-type="bla">
                <img src="OK">
            </a>
        </div>
    </body>
</html>
HTML;

$crawler = new Crawler($html);

$link = $crawler->filter('#product a[data-type="bla"]');

echo var_dump(count($link));

var_dump($link->filter('img')->attr('src'));

正如你可以看到,这正是你的代码(只是有点不同,但本质上不是),它给出了以下输出

int(1)
string(2) "OK"

一个输出行是count(),第二个是src属性值.

你有运行作曲家更新吗?你仔细检查了输入吗?

原文地址:https://www.jb51.cc/php/139810.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐