Я пытаюсь извлечь заголовки со страницы. Пока вроде все работает, но результат удвоился. Например, я получаю названия h3. На странице один раз, а в источнике - 2 раза.
Вот пример
<span data-img-type='cvr' data-img-att-alt='Cover of Greek Mythology' data-img-size-xs='image.jpg'></span>
<h3> Cover of Greek Mythology </h3>
Это вернет
Cover of Greek Mythology
Cover of Greek Mythology
Я нацелен только на элементы h3, но они все равно кажутся удвоенными. Как удалить повторяющиеся элементы?
Вот что у меня есть
$html = file_get_contents('https://example.com/');
$scriptDocument = new DOMDocument();
libxml_use_internal_errors(TRUE);
if (!empty($html)){
$scriptDocument->loadHTML($html);
libxml_clear_errors();
$scriptDOMXPath = new DOMXPath($scriptDocument);
//get all the h3's with an class
$scriptRow = $scriptDOMXPath->query('//h3[@class]');
//check
if ($scriptRow->length > 0){
foreach($scriptRow as $row){
echo $row->nodeValue . "<br/>";
}
}
}
Привет, я забыл добавить class к <h3>. Я удалил его, пока тестировал несколько вариантов, и скопировал сюда без класса. Да, в вашей демонстрации не отображаются удвоенные заголовки, что странно.






//h3[@class]в элементе xpath select h3 имеет атрибут класса, которого в вашем примере не существует. Когда я использовал//h3в xpath, он возвращал только один текст, не удвоенный. Проверить 3v4l.org/brmut