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