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 18:24
#136746 #136746
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Parsen lässt sich alles mit den von dir genannten Parsern, wenn es entweder gültiges/wohlgeformtes HTML oder XML ist.

CPAN:HTML::Parser ist Grundlage von CPAN:HTML::TreeBuilder. Wenn der HTML-Parser das schluckt (und das tut er oft, weil er kein SGML-Parser ist), wird auch wohl ein Baum aufgebaut.

CPAN:XML::LibXML ist da zickiger, weil das Parsen von XML strenger gehandhabt wird.

Schau mal das an:
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
#!/bin/perl

use strict;
use warnings;
#use diagnostics;

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

eval {
        print "Parsing with XML::LibXML\n";
        my $parser = XML::LibXML->new();
        my $doc = $parser->parse_string(<<'EOT');
<html>
<A>
EOT
};
print $@ if ($@); 

eval{
        print "\n\nParsing with HTML::TreeBuilder\n";
        my $tree = HTML::TreeBuilder->new; # empty tree
        $tree->parse(<<'EOT');
<html>
<A>
EOT
        $tree->dump; 
};
print $@ if ($@); 
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