Я пытаюсь проанализировать некоторые базовые html, используя xpath и запуская проблемы. Возвращенный вывод всегда пуст, используя то, что я читаю xpath docs, чтобы сказать, что работает. Ниже моя первая попытка сделать эту работу. Любая помощь ценится, как всегда, парни и девушки.
$html = '<ul>'; $html .= ' <li id="stuff-12345"> some content here </li>'; $html .= ' <li id="stuff-54321"> some other content here </li>'; $html .= '</ul>'; $dom = new DOMDocument(); $dom->loadHTML($html); $xpath = new DOMXPath($dom); $result = $xpath->query('//ul/li'); foreach($result as $e){ echo $e->item(0)->nodeValue . "\n"; }
DOMXPath::query
возвращает DOMNodeList
. Когда вы делаете
foreach($result as $e){
вы DOMElement
элементы DOMNodeList
в DOMNodeList
. DOMElement
не имеет метода item()
. Только DOMNodeList
имеет это. Попробуйте
foreach($result as $e){ echo $e->nodeValue, PHP_EOL; }