M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2008年6月24日 23:27

HTMLのリスト要素を理解してプレーンテキストへ変換

このエントリーをはてなブックマークに追加 mixiチェック

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
$

とても便利。

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2512

コメントする