我想使用 PHP DOM 实现来操作 HTML 和 XHTML 文档。我使用 DOMDocument->loadHTML() 方法来加载内容。
想知道加载的内容是 XHTML 还是 HTML。 DOMDocument 有一个 doctype 对象,其中包含文档本身的 DOCTYPE 声明。到目前为止,我考虑比较 $dom->doctype->publicId 其中包含类似“-//W3C//DTD HTML 4.01//ENtext/html”的字符串
大家能想到更好的办法吗?
Edit:
抱歉,如果我的问题有点不清楚。我更新了这个问题,因为它可能令人困惑。但现在要澄清的是:这个问题并不是关于一般使用 PHP DOM 处理 HTML 或 XHTML 是好是坏。
如果您从外部源加载,您可以检查文件的 MIME 类型并查看它是否是application/xhtml+xml
;如果是,那么它绝对是 XHTML(当然它可以使用该类型,但带有严重畸形的标记)。否则如果是text/html
然后它会被解析为 HTML 标签汤。实际标记的有效性aside,doctype 声明是判断内容是(或声称是)HTML 还是 XHTML 的下一个最佳方式。
正如您所说,您可以检查公共标识符和/或 URI 并从中确定类型。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)