Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать из невалидного HTML-документа валидный 
:(
    Опции темы
barcelona
Дата 1.8.2008, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Здравствуйте!
Мне необходимо обработать HTML-документ как XML. При этом этот HTML-документ до невозможности не валидный. Вопрос: существует ли готовая библиотека или скрипт на PHP, который бы из невалидных HTML-документов делал валидные?
Заранее спасибо!
PM MAIL   Вверх
gta4kv
Дата 1.8.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: нет
Всего: 91



 smile 
Смешная шутка. Нет.
 smile 
PM MAIL   Вверх
skyboy
Дата 1.8.2008, 13:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(barcelona @  1.8.2008,  10:56 Найти цитируемый пост)
который бы из невалидных HTML-документов делал валидные?

в общем случае это невозможно.
к примеру,
Код

<span><p>fff</span></p>

- как это разделить?
или если вдруг закрывающий тег "потерялся" - в каком месте его вставить?
нет, разбирайся с разметкой вручную.

PM MAIL   Вверх
barcelona
Дата 1.8.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



Вот ч-о-о-орт! Этот документ поступает ко мне из источника, который не подправишь....
PM MAIL   Вверх
bars80080
Дата 1.8.2008, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 1
Всего: 315



значит парсить его не как xml, а обычными способами
PM MAIL WWW   Вверх
skyboy
Дата 1.8.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



barcelona, "невалидности" носят постоянный характер? пример почему не приводишь?
PM MAIL   Вверх
barcelona
Дата 1.8.2008, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 21.4.2007

Репутация: нет
Всего: нет



bars80080, а какие это обычные способы?
Я откопал расширение php5 - tidy называется, оно не может подойти для чистки исходного HTML-документа?
skyboy, документ кривой насквозь. Незакрытые теги, атрибуты тегов без кавычек - и вообще полный набор определения "невалидность".

Это сообщение отредактировал(а) barcelona - 1.8.2008, 15:09
PM MAIL   Вверх
skyboy
Дата 1.8.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(barcelona @  1.8.2008,  14:07 Найти цитируемый пост)
атрибуты тегов без кавычек

при желании можно вылечить регулярками. разве что, если в значении пробел, то автоматизировать распознание "это не отдельное значение, а к тому, предыдущему относится" не выйдет.
Цитата(barcelona @  1.8.2008,  14:07 Найти цитируемый пост)
Незакрытые теги

ну, одиночные вроде <input> или <image> ещё можно закрыть теми же регулярками. но вот где ставить закрывающий тег для <p>?
PM MAIL   Вверх
bars80080
Дата 1.8.2008, 15:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 1
Всего: 315



обычные способы, это отыскивать нужную инфо по вехам, типа strstr(), preg_match(), парсить теми же регулярками и explode()

геморно, и никак иначе. либо сумеешь заставить источник валидно отдавать, либо придётся работать эту кучу
я к примеру свой источник одной инфо не сумел заставить, теперь в ручную
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0723 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.