Я новичок в dom xpath и пытаюсь проиндексировать сайт как упражнение. Раньше я работал с simple_html_dom, поэтому хотел попробовать встроенный dom xpath, чтобы он не зависел от сторонних библиотек.
URL, который я пытаюсь очистить:
https://hackdesign.org/lessons
Выдержка из моего кода:
$scriptDocument->loadHTML($html);
libxml_clear_errors();
$siteDOM = new DOMXPath($scriptDocument);
$base = $siteDOM->query('//div[@class="flex-auto prose"]');
if($base->length > 0) {
foreach ($base as $title) {
$title = $siteDOM->query('//a[@class="red"]');
$hdtitlu = $title->nodeValue;
$hdlink = 'https://hackdesign.org'.$title->getAttribute("href");
echo $hdtitlu . '<br />';
echo $hdlink . '<br />';
}
}
По моему скромному мнению, это должно было сработать. Я начинаю с базового элемента div, из которого хочу получить данные, а затем использую foreach. Я пытаюсь получить заголовок, ссылку и описание из определенных тегов html.
Ошибки, которые я получаю:
Примечание: неопределенное свойство: DOMNodeList :: $ nodeValue в C: \ UwAmp \ www \ test \ index.php в строке 31
Неустранимая ошибка: необработанная ошибка: вызов неопределенного метода DOMNodeList :: getAttribute () в C: \ UwAmp \ www \ test \ index.php в строке 32
Ошибка: вызов неопределенного метода DOMNodeList :: getAttribute () в C: \ UwAmp \ www \ test \ index.php в строке 32
Строка 31: $hdtitlu = $title->nodeValue;
Строка 32: $hdlink = 'https://hackdesign.org'.$title->getAttribute("href");
Можете ли вы указать мне правильное направление?!
Спасибо,
Cristian