Thread XML::LibXML - "Malformed UTF-8 Character (fatal" vermeiden
(11 answers)
Opened by Bob at 2011-05-28 13:48
Hallo allerseits,
ich möchte – inzwischen mit LibXML (ist deutlich schneller als XPath) – XML-Dokumente parsen, auf deren Inhalt ich keinen Einfluss habe. Dafür habe ich eine Pipe. Nun scheint es leider vereinzelt vorzukommen, dass innerhalb eines Dokuments UTF-8 und ISO-Latin-1 vermischt sind. LibXML quittiert das in wenig charmanter Art und Weise mit "Malformed UTF-8 character (fatal) at ..." und tschüs. Von dem Vorhaben, die defekten Zeichensätze zu reparieren, habe ich mich inzwischen verabschiedet. Was in den Foren auch immer an Lösungsansätzen genannt wurde, ich habe es nicht geschafft, das zu implementieren. Meine letze Hoffnung wäre nun, Perl in solchen Fällen wenigstens vom Sterben abzuhalten. Gibt es da irgendeine Möglichkeit? Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 #!/usr/bin/perl -w use strict; use warnings; use Encode; use encoding "utf8"; use XML::LibXML; foreach(@files) { my $parser = XML::LibXML->new({recover => 2, suppress_errors => 1, suppress_warnings => 1, encoding => "utf8"}); my $tree = $parser->load_html(location => $_); ... } Das ginge wohl in die richtige Richtung, aber wie sollte ich das hier implementieren? Ratlos :-( Bob modedit Editiert von GwenDragon: Titel geändert Last edited: 2011-05-28 14:32:38 +0200 (CEST) |