68 lines
1.2 KiB
Perl
68 lines
1.2 KiB
Perl
#!perl
|
|
|
|
use warnings;
|
|
use strict;
|
|
use 5.008;
|
|
|
|
use Pod::Usage;
|
|
|
|
=head1 NAME
|
|
|
|
htmltree - Parse the given HTML file(s) and dump the parse tree
|
|
|
|
=head1 SYNOPSIS
|
|
|
|
htmltree -D3 -w file1 file2 file3
|
|
|
|
Options:
|
|
-D[number] sets HTML::TreeBuilder::Debug to that figure.
|
|
-w turns on $tree->warn(1) for the new tree
|
|
-h Help message
|
|
|
|
=cut
|
|
|
|
my $warn;
|
|
my $help;
|
|
|
|
BEGIN { # We have to set debug level before we use HTML::TreeBuilder.
|
|
$HTML::TreeBuilder::DEBUG = 0; # default debug level
|
|
$warn = 0;
|
|
while(@ARGV) { # lameo switch parsing
|
|
if($ARGV[0] =~ m<^-D(\d+)$>s) {
|
|
$HTML::TreeBuilder::DEBUG = $1;
|
|
print "Debug level $HTML::TreeBuilder::DEBUG\n";
|
|
shift @ARGV;
|
|
} elsif ($ARGV[0] =~ m<^-w$>s) {
|
|
$warn = 1;
|
|
shift @ARGV;
|
|
} elsif ($ARGV[0] =~ m<^-h$>s) {
|
|
$help = 1;
|
|
shift @ARGV;
|
|
} else {
|
|
last;
|
|
}
|
|
}
|
|
}
|
|
|
|
pod2usage({-exitval => 0, -verbose => 1}) if($help);
|
|
|
|
use HTML::TreeBuilder;
|
|
|
|
foreach my $file (grep( -f $_, @ARGV)) {
|
|
print
|
|
"=" x 78, "\n",
|
|
"Parsing $file...\n";
|
|
|
|
my $h = HTML::TreeBuilder->new;
|
|
$h->ignore_unknown(0);
|
|
$h->warn($warn);
|
|
$h->parse_file($file);
|
|
|
|
print "- "x 39, "\n";
|
|
$h->dump();
|
|
$h = $h->delete(); # nuke it!
|
|
print "\n\n";
|
|
}
|
|
|
|
exit;
|