Thread HTML-Parser und leere Elemente
(3 answers)
Opened by GwenDragon at 2008-01-25 13:02
Ich dachte, ich müsste irgendwie HTML-Tagfilter patchen.
Bin halt über #22135: self-closing tags are improperly rewritten gestolpert. Ach ja, HTML::TagFilter ist ja ein Kind von HTML::Parser. Geht auch anders, wie ich sehe und löst obigen Bug ;) Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #!/usr/local/bin/perl use strict; use warnings; use lib "lib"; use HTML::TagFilter; my $p = HTML::TagFilter->new ( strip_comments=>1, ); #eval { $p->strict_comment(1) }; #eval { $p->strict_names(1) }; #eval { $p->strict_end(1) }; #eval { $p->empty_element_tags(1) }; eval { $p->xml_mode(1) }; #eval { $p->marked_sections(1) }; $p->parse(<<'HTML'); <body onload="aaa"> <p onclick="a"><img onclick="AAAA" src="a" alt="99" /></p> <p /> <div> <br /> <hr /> <a href="a"/></div> <script/> </body> </html> HTML my $report = $p->report; print STDERR '-' x 30, "\n", "Report: \n", $report, "\n", '-' x 30, "\n\n" if defined $report; my $error_log = $p->error; print STDERR '-' x 30, "Errors: \n", "\n", $error_log, "\n", '-' x 30, "\n\n" if length $error_log; print $p->output; Ich habe einfach mal im Fall von XHTML bei HTML::Parser mit eval { $p->xml_mode(1) }; den XML-Modus eingeschhaltet und siehe da: Aus <img onclick="AAAA" src="a" alt="99" /> wird <img src="a" alt="99"></img> Was nach XML korrekt ist. |