让Nokogiri决定是否使用#fragment或#parse

时间:2012-04-26 07:11:55

标签: ruby xml nokogiri

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

这对Nokogiri来说有所不同,因为它应该使用#fragment来解析片段,而使用#parse来解析完整的文档。

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

丹尼斯

2 个答案:

答案 0 :(得分:2)

取决于您的网页是如何被删除的,但

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

应该适用于大多数情况。

答案 1 :(得分:0)

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

这足以解决您的问题吗?