2016-12-07 54 views
0

我正在使用DiDom html解析器库。从它的文档(https://github.com/Imangazaliev/DiDOM#verify-if-element-exists):如何验证DIDOM html解析器是否存在第n个元素

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

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

但如果我需要检查'元素的数组的第n个元素的所有脑干.POST”类,例如:

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

下面的代码无法正常工作,并抛出错误:

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

回答

0

我找到了解决方案。 DiDOM has()方法不提供n-child选项。所以我使用伪类选择器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"; 
    }