Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: X технологии > Проблема с форматированием вывода DOM |
Автор: Resident 18.10.2008, 02:33 | ||||||||
Есть документ XHTML следующего содержания:
Я загружаю его в DOM:
И на выходе вместо:
Я получаю:
И после этого валидатор начинает ругаться на эти и аналогичные одиночные, незакрытые дескрипторы вроде <br> вместо <br /> и т.д. Подскажите пожалуйста как можно выйти из такой ситуации и заставить DOM генерировать HTML согласно DTD? |
Автор: Serkys 19.10.2008, 08:09 | ||||
Ну так ты ведь сам сказал "дай мне HTML, а не XML" ![]()
Замени на
|
Автор: Resident 22.10.2008, 12:09 |
Пробывал я уже saveXML() вместо saveHTML(), но проблемы это не решило. Сайт на выходе отображался некорректно, тогда как при использовании метода saveHTML() все отображалось нормально. Может это из-за того, что код не проходит валидацию XHTML? |
Автор: bars80080 22.10.2008, 13:06 |
возможно при saveXML() на выходе добавляется <?xml ?> в начало? |
Автор: sTa1kEr 28.10.2008, 02:30 | ||
Во первых у вас вообще отсутствует декларация XML документа ('тег <?xml?>') А во вторых нужно вызывать не только метод saveXML(), но и loadXML()
|
Автор: Resident 28.10.2008, 13:47 | ||||||
Не добавляется.
Насколько мне известно для XHTML объявление декларации XML документа не требуется. Во всяком случае валидатор за это ничего не писал. Подставил строку "<?xml version="1.0" encoding="windows-1251"?>" в самом начале документа. Делаю $dom->loadXML($xml) $dom->saveXML() и на выходе почему то получаю не весь документ, а одну эту строку. |
Автор: Resident 1.11.2008, 04:07 | ||||||||||
Приведенный вами пример работает как положено, но если использовать xml с главной страници сайта http://www.thehack.ru/ , то вылетает куча варнингов и отображается только <?xml version="1.0" encoding="windows-1251"?>, хотя, если использовать метод loadHTML() все парсится нормально. Примеры кода: Не работает.
Работает.
В переменной $html хранится xhtml код. |