如何验证DIDOM html解析器是否存在第n个元素

时间:2016-12-07 08:58:12

标签: php css-selectors html-parsing

我正在使用DiDom html解析器库。从它的文档(https://github.com/Imangazaliev/DiDOM#verify-if-element-exists):

如果你需要检查元素是否存在然后得到它:

if ($document->has('.post')) {
    $elements = $document->find('.post');
    // code
}

但是如果我需要用' .post'来检查元素数组的第n个元素是否存在呢? class,例如:

$elements = $document->find('.post')[1];

下面的代码不起作用并抛出错误:

if ($document->has('.post')[1]) {
    $elements = $document->find('.post')[1];
    // code
}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 DiDOM 有()方法不提供第n个子选项。所以我使用了伪类选择器nth-child(n)来检查第n个元素的外观。 代码现在看起来:

    if ($document->find('.post:nth-child(2)')) {
        $elements = $document->find('.post:nth-child(2)'))[0]->text();
    } else { 
    echo "there are no such item"; 
    }