如何验证DDOM HTML解析器是否存在nth元素



我正在使用didom html解析器库。从其文档(https://github.com/imangazaliev/didom#verify-if-element-exists):

如果您需要检查是否存在元素,然后获取:

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

但是,如果我需要用'.post'类检查元素数组数组的n-三元素,例如:

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

下面的代码不起作用并引发错误:

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

我找到了解决方案。didom has()方法不提供nth-child选项。因此,我使用伪级选择器nth-child(n)来检查n-the元素的外观。该代码现在看起来:

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

最新更新