Заголовок getElementsByTagName возвращается с объектом DOMNodeList

#php #domdocument #getelementsbytagname

#php #domdocument #getelementsbytagname

Вопрос:

Наш скрипт использует dom для анализа всех тегов a из документа, затем перебирает дочерние узлы и извлекает информацию, которая работает нормально. вот как начинается код

 @$dom->loadHTML($str);
$documentLinks = $dom->getElementsByTagName("a");
  

Часть цикла

 $this->count]['href']     = strip_tags($documentLink->getAttribute('href'));
  

Теперь мне нужно получить тег заголовка с каждой просматриваемой страницы, чтобы я мог сделать

 $documentTitle = $dom->getElementsByTagName("title");
$documentLinks = $dom->getElementsByTagName("a");
  

Затем добавьте это в цикл / массив, чтобы получить заголовок документа, но он возвращается с «[title] => DOMNodeList Object ()» Как я могу включить тег title в цикл, который проходит через теги / дочерние узлы?

 $this->count]['title']  = $documentTitle;
  

Ответ №1:

getElementsByTagName возвращает объект DOMNodeList. Вам нужно текстовое содержимое первого (должно быть только одно название страницы) элемента в списке.

Попробуйте это:

 $documentTitle = $dom->getElementsByTagName('title')->item(0)->textContent;