![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
Resident |
|
||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Есть документ XHTML следующего содержания:
Я загружаю его в DOM:
И на выходе вместо:
Я получаю:
И после этого валидатор начинает ругаться на эти и аналогичные одиночные, незакрытые дескрипторы вроде <br> вместо <br /> и т.д. Подскажите пожалуйста как можно выйти из такой ситуации и заставить DOM генерировать HTML согласно DTD? |
||||||||
|
|||||||||
Serkys |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: нет Всего: 22 |
Ну так ты ведь сам сказал "дай мне HTML, а не XML"
![]()
Замени на
|
||||
|
|||||
Resident |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Пробывал я уже saveXML() вместо saveHTML(), но проблемы это не решило. Сайт на выходе отображался некорректно, тогда как при использовании метода saveHTML() все отображалось нормально. Может это из-за того, что код не проходит валидацию XHTML?
|
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 1 Всего: 315 |
возможно при saveXML() на выходе добавляется <?xml ?> в начало?
|
|||
|
||||
sTa1kEr |
|
|||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: нет Всего: 146 |
Во первых у вас вообще отсутствует декларация XML документа ('тег <?xml?>')
А во вторых нужно вызывать не только метод saveXML(), но и loadXML()
|
|||
|
||||
Resident |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Не добавляется.
Насколько мне известно для XHTML объявление декларации XML документа не требуется. Во всяком случае валидатор за это ничего не писал. Подставил строку "<?xml version="1.0" encoding="windows-1251"?>" в самом начале документа. Делаю $dom->loadXML($xml) $dom->saveXML() и на выходе почему то получаю не весь документ, а одну эту строку. |
||||||
|
|||||||
sTa1kEr |
|
||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: нет Всего: 146 |
Зато для XML требуется. При чем тут валидатор? Валидатор не имеет никакого отношения к парсингу. Парсите вы XML документ, значит и соответствовать он должен всем стандартам XML.
Привидите сам код, который не работает. [telepathy]Вы не перепутали случаем названия переменных с контентом? В моем пример это $xml, а в вашем $html[/telepathy] |
||||
|
|||||
Resident |
|
||||||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 75 Регистрация: 25.9.2006 Репутация: нет Всего: 0 |
Приведенный вами пример работает как положено, но если использовать xml с главной страници сайта http://www.thehack.ru/ , то вылетает куча варнингов и отображается только <?xml version="1.0" encoding="windows-1251"?>, хотя, если использовать метод loadHTML() все парсится нормально. Примеры кода: Не работает.
Работает.
В переменной $html хранится xhtml код. |
||||||||||
|
|||||||||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: X технологии | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |