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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> loadHTML переставляет теги 
:(
    Опции темы
NTMan
Дата 19.6.2008, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В результате активной работы последнее время над парсингом HTML документов при помощи DOM обнаружил, что докуметы портятся.
Ниже приведенный пример иллюстрирует как закрывающий тег </h2> после загрузки в DOM перескакивает перед параграфом.

Код

<?php
$pagecode = <<<EOT
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta content='text/html; charset=windows-1251' http-equiv='Content-Type'>
</HEAD>
<BODY>
<h2>
Большие буквы
<p>Вставлен типа абзац</p>
Должны быть тоже большие буквы
</h2>
</BODY>
</HTML>
EOT;

$doc = new DOMDocument('1.0', 'WINDOWS-1251');
$doc->loadHTML($pagecode);
echo $doc->saveHTML();
?>


Должно было быть:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta content='text/html; charset=windows-1251' http-equiv='Content-Type'>
</HEAD>
<BODY>
<h2>
Большие буквы
<p>Вставлен типа абзац</p>
Должны быть тоже большие буквы
</h2>
</BODY>
</HTML>


Получаеться:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta content='text/html; charset=windows-1251' http-equiv='Content-Type'>
</HEAD>
<BODY>
<h2>
Большие буквы
</h2>
<p>Вставлен типа абзац</p>
Должны быть тоже большие буквы
</BODY>
</HTML>


Традиционные два вопроса:
1) Почему так?
2) Как от этого избавиться?
PM MAIL ICQ   Вверх
MystDeim
Дата 26.6.2008, 18:03 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 22.10.2007
Где: Россия->Юбилей ный

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



1) У вас же вёрста невалидная, теги не должны перекрываться!
2) Переверстать без перекрытия тегов.
--------------------
Учебные материалы для студентов http://studlab.org
PM MAIL WWW   Вверх
IZ@TOP
Дата 2.7.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

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



NTMan, советую обратиться к DTD HTML 4.0 Transitional (entity heading). Там явно сказано, что тег H2 может содержать в себе исключительно inline элементы.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

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


 




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


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

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