note
bmann
Thanks for posting the code. <p>
If you want to use the messages method, you need to parse it first, not clean it.<p>
<code>#!/usr/bin/perl
use lib '/home/brian/lib/lib/perl/5.8.4';
use strict;
use warnings;
use HTML::Tidy;
open M, "test.html" or die "$!";
my $html = do { local $/; <M> };
my $tidy = new HTML::Tidy;
$tidy->parse( "test", $html );
for my $message ( $tidy->messages ) {
print $message->as_string, $/;
}
__END__
output on a test file:
test (1:1) Warning: missing <!DOCTYPE> declaration
test (8:9) Warning: missing </form> before <option>
test (6:1) Warning: <option> isn't allowed in <body> elements
test (6:1) Warning: <input> isn't allowed in <body> elements
test (12:33) Warning: inserting implicit <form>
test (14:17) Warning: discarding unexpected </option>
test (12:33) Warning: <form> lacks "action" attribute
</code><p><strike>
If you want the cleaned output, it is edited in-place, ie:
<code>$tidy->clean( $html ); # $html now contains tidied output
</code></strike><p>Update: the clean method returns the clean html, as [Aristotle] points out below
422845
422853