Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一段 HTML,我想用 Nokogiri 解析,但我不知道它是一个完整的 HTML 文档(带有 DOCTYPE 等)还是一个片段(例如,只是一个包含一些元素的 div)。
这对 Nokogiri 产生了影响,因为它应该使用 #fragment 来解析片段,而使用 #parse 来解析完整文档。
有没有办法确定给定的文本是片段还是完整的 HTML 文档?
丹尼斯
取决于您的页面的垃圾程度,但是
/^(?:\s*<!DOCTYPE)|(?:\s*<html)/
在大多数情况下应该可以工作。
最简单的方法是查找强制<html>标记,例如使用正则表达式/<html[\s>])/(允许属性)。
<html>
/<html[\s>])/
这足以解决您的问题吗?