我想用PHP DOM实现来操作HTML和XHTML文档。我使用DOMDocument-> loadHTML()方法来加载内容。
想知道加载的内容是XHTML还是HTML。 DOMDocument有一个doctype对象,它包含文档本身的DOCTYPE声明。到目前为止,我考虑过比较$ dom-> doctype-> publicId,其中包含类似“ - // W3C // DTD HTML 4.01 // ENtext / html”等字符串
有没有人能想到更好的方式?
修改
很抱歉,如果我的问题有点不清楚。我更新了这个问题,因为它可能令人困惑。但现在要说清楚:这个问题不是关于使用PHP DOM处理HTML或者XHTML是好还是坏。
答案 0 :(得分:1)
如果您是从外部来源加载的,则可以检查文件的MIME类型,看看它是否为application/xhtml+xml
;如果它是,它绝对是XHTML(当然它可以谎言和服务于那种类型,但有可怕的格式错误标记)。否则,如果它是text/html
,那么它将被解析为HTML标签汤。实际标记的有效性,doctype声明是告知内容是否(或声称是)HTML或XHTML的下一个最佳方式。
如您所说,您可以检查公共标识符和/或URI,并从那里确定类型。