ruby - 让 Nokogiri 决定是否使用 #fragment 还是 #parse

标签 ruby xml nokogiri

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

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

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

丹尼斯

最佳答案

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

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

在大多数情况下应该有效。

关于ruby - 让 Nokogiri 决定是否使用 #fragment 还是 #parse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10328771/

相关文章:

ruby - 修复 "Nokogiri failed to build gem native extension"

ruby-on-rails - rails : Error running rake due to different ruby version

ruby-on-rails - 通过 YAML 文件中的循环在 Rails 中动态生成装置

xml - MusicXML 规范和和弦符号

c++ - RapidXML 节点异常处理

ruby - 解析:我可以在 Nokogiri 中获取嵌入式 CSS 背景的 URL 吗?

ruby - 比较相等的字符串在 Hash 中找不到相同的对象

ruby - 正则表达式匹配所有字母数字主题标签,没有符号

java - 如何使用 dom 解析器在 xml 中写入特殊字符( &、<、> 等)

html - 如何使用 Nokogiri 从 HTML head 获取规范链接