Techioz Blog

Nokogiri に #fragment を使用するか #parse を使用するかを決定させる

概要

Nokogiri で解析したい HTML の一部がありますが、それが完全な HTML ドキュメント (DOCTYPE などを含む) なのか、フラグメント (たとえば、いくつかの要素を含む単なる div) なのかわかりません。

Nokogiri ではフラグメントの解析には #fragment を使用するが、完全なドキュメントの解析には #parse を使用する必要があるため、これは違いになります。

特定のテキスト部分がフラグメントであるか完全な HTML ドキュメントであるかを判断する方法はありますか?

デニス

解決策

ページのゴミの程度にもよりますが、

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

ほとんどの場合は機能するはずです。