KazMuzik.net
Music / Technology / Healthcare / Immigration / アメリカ
Google
 
<< π (パイ, Pi, 円周率)の日 - KazMuzik.net Project #10 - ChannelsMail-in Rebate Update >>

sampo nutch project #3 - TextReplacer and RemoveAllTagsCommand - KazMuzik Blog
2008-03-15 13:56

LiveJournal.com から、ブログを移行する際、URL や、Ads を置き換えたり、不要な部分を削除したり、しています。いったん、Nutch segment にstore された content を変換していますが、エントリだけで 900近くなり、その他に、Tag のページなどを含めると、1,000近いページになります。このため、手作業では不可能なため、主に、Java でプログラムを書いて、変換しています。最初は手っ取り早く、ハードコードして、すませていたのですが、汎用的なクラスは、整理して、sampo project に入れていくことにしました。

今回は、TextReplacer です。これは、指定した文字列で挟まれた部分を、別の文字列で置き換える utility class です。例えば、new TextReplacer("<script", "</script>", "<!-- SCRIPT REMOVED -->").replace(text) とすると、text から script タグが削除されて、コメントが挿入されます。また、コンストラクタの 2番目のパラメータを null, あるいは省力すると、1番目のパラメータで指定された文字列が置き換えられます。標準では、String クラスの toLowerCase() を使い、大文字、小文字を区別しないで、マッチさせていますが、最後の boolean フラグを false にすることにより、大文字、小文字を区別することができます。

RemoveAllTagsCommand は、new TextReplacer("<", ">", "", false) を用いて、ファイルから、HTML や XML のタグをすべて取り除く Command クラスです。

Tags: programming