2

我有一段 HTML,我想用 Nokogiri 解析,但我不知道它是一个完整的 HTML 文档(带有 DOCTYPE 等)还是一个片段(例如,只是一个包含一些元素的 div)。

这对 Nokogiri 产生了影响,因为它应该使用 #fragment 来解析片段,而使用 #parse 来解析完整文档。

有没有办法确定给定的文本是片段还是完整的 HTML 文档?

丹尼斯

4

2 回答 2

2

取决于您的页面的垃圾程度,但是

/^(?:\s*<!DOCTYPE)|(?:\s*<html)/

在大多数情况下应该可以工作。

于 2012-04-26T08:35:28.077 回答
0

最简单的方法是查找强制<html>标记,例如使用正则表达式/<html[\s>])/(允许属性)。

这足以解决您的问题吗?

于 2012-04-26T07:32:33.607 回答