我正在使用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";
}