我有一段HTML我想用Nokogiri解析,但我不知道它是一个完整的HTML文档(带有DOCTYPE等)还是一个片段(例如,只是一个包含一些元素的div)。
这对 Nokogiri 来说有所不同,因为它应该使用 #fragment 来解析片段,#parse 来解析完整的文档。
有没有办法确定给定的文本是片段还是完整的HTML文档?
丹尼斯
取决于您的页面的垃圾程度,但是
/^(?:s*<!DOCTYPE)|(?:s*<html)/
在大多数情况下应该有效。
最简单的方法是查找必需的<html>
标签,例如使用正则表达式/<html[s>])/
(允许属性)。
这足以解决您的问题吗?