Как исключить дублированные элементы DOMDocument

Я пытаюсь извлечь заголовки со страницы. Пока вроде все работает, но результат удвоился. Например, я получаю названия 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/>";
        }
    }
}

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

Mohammad 22.09.2018 10:03

Привет, я забыл добавить class к <h3>. Я удалил его, пока тестировал несколько вариантов, и скопировал сюда без класса. Да, в вашей демонстрации не отображаются удвоенные заголовки, что странно.

user9538545 25.09.2018 05:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
29
0

Другие вопросы по теме