Различение XHTML и HTML с помощью PHP DOMDocument - PullRequest
3 голосов
/ 06 января 2011

Я хочу манипулировать документами HTML и XHTML с помощью реализации PHP DOM.Я использую метод DOMDocument-> loadHTML () для загрузки содержимого.

Чтобы узнать, загружен ли контент в формате XHTML или HTML.DOMDocument имеет объект doctype, который содержит объявление DOCTYPE из самого документа.До сих пор я думал о сравнении $ dom-> doctype-> publicId, который содержит такие строки, как "- // W3C // DTD HTML 4.01 // ENtext / html"

Есть ли какой-нибудь способ лучше кого-либо придумать?

Редактировать:

Извините, если мой вопрос был немного неясным.Я обновил вопрос, так как это могло сбить с толку.Но чтобы прояснить это сейчас: этот вопрос не об обработке HTML с PHP DOM в целом или о том, хорош XHTML или плох.

1 Ответ

1 голос
/ 06 января 2011

Если вы загружаете из внешнего источника, вы можете проверить MIME-тип файла и посмотреть, является ли он application/xhtml+xml;если это так, то это определенно XHTML (конечно, он может лгать и служить с этим типом, но с ужасно искаженной разметкой).В противном случае, если это text/html, он будет проанализирован как суп HTML-тега.Действительность фактической разметки , за исключением , объявление doctype - ваш следующий лучший способ определить, является ли содержимое (или претендует на то, чтобы быть) HTML или XHTML.

Как вы говорите, вы можете проверить открытый идентификатор и / или URI и определить тип оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...