Symfony Crawler - 如何读取当前元素的类型

时间:2014-09-08 11:15:46

标签: symfony web-crawler

我不知道如何读取当前的html元素(Crawler类的实例)类型。 例如:

$html = <<<'HTML'
    <div>
        <p class="message">Hello World!</p>
        <p>Hello Crawler!</p>
    </div>
HTML;

$crawler = new Crawler($html);
$type = $crawler->getType(); // it should return 'div' but such method doesn't exist
file_put_contents('log.txt', $type, FILE_APPEND);

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是:

$crawler->nodeName

在您的具体情况下,如果您使用分支任何分支,最多2.5:

$crawler->filter('body')->children()->getNode(0)->nodeName

如果你使用的是master分支,你可以更优雅地做到这一点:

$crawler->filter('body')->nodeName()

Symfony Crawler尝试“修复”您的HTML并将其打包到html>body标记中(如果它们不存在)。我不知道是否可以禁用此功能。