Thread XML::LibXML + HTML::TreeBuilder sollen Parsen abbrechen bei defektem HTML (19 answers)
Opened by bikus at 2010-05-04 16:21

GwenDragon
 2010-05-04 19:26
#136766 #136766
User since
2005-01-17
14510 Artikel
Admin1
[Homepage]
user image
@topeg
Wie schlecht dass XML sein kann, dass LibXML meckert, zeigte ich ja.

Aber dieses Problem lässt den Parser auch mit recovr haken:
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
43
44
#!/usr/bin/env perl
use warnings; 
use strict;

use HTML::TreeBuilder;
use XML::LibXML;

eval {
        print "Parsing with XML::LibXML\n";
        my $parser = XML::LibXML->new( recover => 2 );
        my $doc = $parser->parse_html_string(<<'EOT');
<html>
<head>
<title>
Das 
< 
ist 
ein 
Groesserzeichen</title>
<A>
EOT
        print $doc->toString;
};
print $@ if ($@); 



eval{
        print "\n\nParsing with HTML::TreeBuilder\n";
        my $tree = HTML::TreeBuilder->new; # empty tree
        $tree->parse(<<'EOT');
<html>
<head>
<title>
Das 
< 
ist 
ein 
Groesserzeichen</title>
<A>
EOT
        $tree->dump; 
};
print $@


@bikus
Wenn du wissen willst, wann welcher Parser stolpert, verwende bitte einen HTML-Fuzzer zum Generieren von kaputtem XML/HTML.
Last edited: 2010-05-04 19:30:08 +0200 (CEST)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

View full thread XML::LibXML + HTML::TreeBuilder sollen Parsen abbrechen bei defektem HTML