$team_xml = new DOMDocument();
$team_xml->encoding='windows-1251';
$team_xml->loadHTMLFile('http://ya.ru');
$tag_list = $team_xml->getElementsByTagName('a');
foreach ($tag_list AS $tag) {
foreach ($tag->childNodes AS $item) {
print $item->nodeName." = " . $item->nodeValue . "<BR>";
}
}
Парсинг HTML на PHP
Многие советуют для этого использовать DOM, но т.к. подавляющее большинство html-документов в Интернет составлено с ошибками (не закрытые теги и т.д.), DOM-модель работает не корректно.
Например, вот код, который я нашел в Интернет. Ин должен выводить все теги A (ссылки) из html-документа (в примере это первая страница Яндекса).
Код:
Но результат абсолютно не верный. Что делать???
P.S. Вот в Perl есть такой модуль HTML::TreeBuilder - он любые html-файлы парсит, а в PHP такого модуля нет :(
еще есть Tidy
http://pear.php.net/package/XML_HTMLSax3
и конечно же tidyHtml
и конечно же tidyHtml
Цитата: RussianSpy
еще есть Tidy
Я поставил Tidy, но там совсем мало функций. по сути этот модуль просто убирает ошибки из HTML, не занимаясь парсингом. Я полученные после обработки модуля HTML-код все равно не правильно анализируется.
Как мне, например, вывести список параметра href у все тегов A на конкретной странице?
Если словосочетание регулярное выражение знакомо, то проблем не возникнет, если нет, то учить и потом проблем не возникнет)