■ HTML::TreeBuilder
http://search.cpan.org/~petek/HTML-Tree-3.23/lib/HTML/TreeBuilder.pm
HTML::TreeBuilder は本来 htmlパーサなのですが、閉じ忘れた htmlタグを自動で補完してしてくれる便利なオプションを発見したので紹介します。
サンプルソース
#!/usr/bin/perl -w print "Content-type: text/html;\n\n"; use strict; use lib qw( ./lib ); use CGI::Carp qw(fatalsToBrowser); use Data::Dumper; $Data::Dumper::Sortkeys = 1; use HTML::TreeBuilder; ### html2 タグの途中で切れてしまった validでない html my $html2=<<HTML; <html> <body> <h1>test</h1> <table> <tr> <td>test1</td> <t HTML my $tree = HTML::TreeBuilder->new; $tree->p_strict(1); $tree->parse($html2); $tree->dump; print "And here it is, bizarrely rerendered as HTML:\n", $tree->as_HTML, "\n"; $tree = $tree->delete;
と。これだけで閉じ忘れた $html2 を直してくれます。
便利!