用 PHP DomDocument 区分 HTML 和 XML

Differentiating HTML and XML with PHP DomDocument

有什么方法可以用 PHP DomDocument 来区分 XML 和 HTML 吗?

我查看了 docs,但没有找到任何东西。

我正在寻找类似 check($string) 的函数,每个 $string.

returns 'is XML''is HTML'

SO 中的这些 similar questions here 对我没有帮助。

使用 preg_match 扩展名。 示例:

if( preg_match('/<html[^>]*>/', $string) ) {
{
  // ... actions for XML ...
} elseif( preg_match('/<\?xml[^?]*\?>/', $string) ) {
  // ... actions for HTML ...
} else {
  // ... actions for another ...
}

没有这个函数,但是你可以放心,当DOMDocument::loadXML()返回true时,有些$string是格式正确的XML(设置recover为false) . HTML 文档因此失败。

对于 HTML,您可以使用 DOMDocument::loadHTML() 检查文档是否可以作为 HTML 加载。 HTML 不如 XML.

严格