У меня есть несколько устаревших документов, похожих на HTML. Например, они выглядят как HTML, но имеют дополнительные составные теги, которые не являются частью HTML
<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>
Мне нужно разобрать эти файлы. PHP - единственный доступный инструмент. Документы не приближаются к тому, чтобы быть правильно сформированным XML.
Моя первоначальная мысль заключалась в том, чтобы использовать методы loadHTML в PHP DOMDocument. Тем не менее, эти методы подавляют макияж HTML-тэги и отказываются анализировать строку / файл.
$oDom = new DomDocument();
$oDom->loadHTML("<strong>This is an example of a <pseud-template>fake tag</pseud-template></strong>");
//gives us
DOMDocument::loadHTML() [function.loadHTML]: Tag pseud-template invalid in Entity, line: 1 occured in ....
Единственное решение, которое мне удалось найти, - это предварительно обработать файлы с помощью функции замены строк, которая удалит недопустимые теги и заменит их допустимым тегом HTML (возможно, span с идентификатором тега имя).
Есть ли более элегантное решение? Способ сообщить DOMDocument о дополнительных тегах, которые следует считать действительными? Существует ли другой надежный класс / объект для анализа HTML для PHP?
(если это не очевидно, я не считаю правильные решения здесь регулярными выражениями)
Обновление : информация в поддельных тегах является частью цели, поэтому что-то вроде Tidy не вариант. Кроме того, я стремлюсь к чему-то, что делает некоторый уровень, если не весь, очистки правильной формы для меня, поэтому я в первую очередь искал метод loadHTML DomDocument.