お久しぶりです。

カリスマスクレイパーのnogです。こんばんは。

最近仕事で使う言語がPerlに変わったのでRubyを書く量が当社比3分の1以下くらいに減ったんですがRubyネタです。

Rubyでスクレイピングとかやってると非常にお世話になるNokogiriですが、それを別の場所で活用できる方法を紹介します。

ユーザーにHTMLを入力させてそれを出力するような場合、ユーザーがタグの閉じ忘れとかすると面倒ですよね。

ユーザー入力のHTMLの閉じ忘れはNokogiriを利用すれば簡単に修正することができます。


require 'rubygems'
gem 'nokogiri'
require 'nokogiri'

Nokogiri::HTML.fragment("<div><br>").to_s
# => "<div><br></div>"

Nokogiri::HTML.fragment("<div><p><br></div>").to_s
# => "<div><p><br></p></div>"

Nokogiri::XML.fragment("<div><br />").to_s
#=> "<div>\n <br/>\n</div>"



HTML片を作るときはNokogiri::HTML.fragmentでXHTML作るときはNokogiri::XML.fragmentを使うといいよ。

簡単なネタだけど困ってるとき割と思い浮かばないんだよね。

Nokogiri通すとその後禁止タグ取り除いたりするのも簡単だよ!