Как заставить HTML5 работать с DomDocument?Html

Программисты Html
Ответить
Anonymous
 Как заставить HTML5 работать с DomDocument?

Сообщение Anonymous »

Я пытаюсь проанализировать HTML -код с помощью Domdocument, делать такие вещи, как его изменения, затем собирать его обратно в строку, которую я отправляю на вывод. < /p>

Но есть несколько вопросов, касающихся анализа, то есть то, что я отправляю в Domdocument, не всегда возвращается в той же форме :) < /p>

Вот список: < /p>

[*] Использование -> loadhtml: < /p>
  • Форматирует мой документ Независимо от настройки SearReerWhiTespace и FormatOutput (потерю пробелов в предварительно образованном тексту)
  • дает мне ошибки, когда у меня есть теги HTML5, такие как , < /code> и т. Д. Но они могут быть подавлены, поэтому я могу жить с этим. element (с тегом самозакрытия), после анализа/savehtml вывод будет

[*] Использование -> loadxml: < /p>


Кодирует такие объекты, как> < /code> from < /code> или теги: body> div становится Body & gt; div
Все теги закрыты одинаково, например, становится ; но это может быть исправлено с помощью режима. Но я бы предпочел Domdocument вместо пользовательского анализатора по причинам производительности < /p>



Обновление: < /h1>

Таким образом, как медмонстр, упомянутый с использованием CDATA, решает основную проблему с Loadxml. < /p>

Есть ли какой -нибудь способ предотвратить самостоятельное закрытие всех пустых HTML Теги, кроме определенного набора, без использования Regex?

Код: Выделить всё

$html = $dom->saveXML($node);

$html = preg_replace_callback('#]*)\s*/>#s', function($matches){

// ignore only these tags
$xhtml_tags = array('br', 'hr', 'input', 'frame', 'img', 'area', 'link', 'col', 'base', 'basefont', 'param' ,'meta');

// if a element that is not in the above list is empty,
// it should close like   `` (for eg. empty ``)
return in_array($matches[1], $xhtml_tags) ? "" : "";
}, $html);
это работает, но также будет выполнять замены в содержимом CDATA, чего я не хочу...

Подробнее здесь: https://stackoverflow.com/questions/107 ... omdocument
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»