HTMLのリスト要素を理解してプレーンテキストへ変換
スポンサードリンク
DBに入っているul要素やol要素で作られたリストのHTML文章を、プレーンテキストにして、フロント側のtextarea要素や、pre要素のところに表示する必要があったので、CPANから、HTML→プレーンテキストに変換するモジュール、HTML::FormatTextをインストールして試してみました。
Filename: html2text.pl
use strict; use warnings; use HTML::TreeBuilder; use HTML::FormatText; use utf8; my $html = << 'END_OF_HTML'; <ul> <li>Adobe <ul> <li> Adobe Creative Suite CS 3.3 Design Premium <ol> <li> Adobe InDesign CS3 </li> <li> Adobe Photoshop CS3 Extended </li> <li> Adobe Illustrator CS3 </li> <li> Adobe Flash CS3 Professional </li> <li> Adobe Dreamweaver CS3 </li> <li> Adobe Acrobat 9 Pro </li> <li> Adobe Fireworks CS3 </li> </ol> </li> <li> Adobe Creative Suite CS 3.3 Design Standard <ol> <li> Adobe InDesign CS3 </li> <li> Adobe Photoshop CS3 </li> <li> Adobe Illustrator CS3 </li> <li> Adobe Acrobat 9 Pro </li> </ol> </li> </ul> </li> </ul> END_OF_HTML my $tree = HTML::TreeBuilder->new->parse( $html ); my $formatter = HTML::FormatText->new( leftmargin => 0, rightmargin => 72, ); (my $text = $formatter->format($tree) ) =~ s|^\n||mgo; binmode STDOUT => ':utf8'; print $text; exit; __END__
実行結果:
$ perl html2text.pl * Adobe * Adobe Creative Suite CS 3.3 Design Premium 1. Adobe InDesign CS3 2. Adobe Photoshop CS3 Extended 3. Adobe Illustrator CS3 4. Adobe Flash CS3 Professional 5. Adobe Dreamweaver CS3 6. Adobe Acrobat 9 Pro 7. Adobe Fireworks CS3 * Adobe Creative Suite CS 3.3 Design Standard 1. Adobe InDesign CS3 2. Adobe Photoshop CS3 3. Adobe Illustrator CS3 4. Adobe Acrobat 9 Pro $
とても便利。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2512
コメントする