Perlプログラムに関する各種メモ書き:タグ「HTML::TreeBuilder」での検索

HTMLの閉じ忘れた htmlタグ を補完する HTML::TreeBuilder

■ 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 を直してくれます。

便利!

No.531
01/15 17:27

edit

HTML::TreeBuilder