[Dresden-pm] Return-Wert von parse_file() XML::LibXML

Falk Herrmann falk.herrmann at bike24.net
Mo Aug 11 03:12:33 PDT 2008


Ich nehme meist immer XML::Twig. Dort gibt es z.B.

safe_parse ( SOURCE [, OPT => OPT_VALUE [...]])

Laut Doku:

This method is similar to parse except that it wraps the parsing in an 
eval block. It returns the twig on success and 0 on failure (the twig 
object also contains the parsed twig). $@ contains the error message on 
failure.

Note that the parsing still stops as soon as an error is detected, there 
is no way to keep going after an error.

Scheint genau das zu sein, was Du suchst. Hängt aber vielleicht auch 
etwas von der Größe der zu parsenden Dateien ab. Wenn eine Datei sehr 
groß ist, wird entsprechend viel Speicher verbraucht und twig ist 
vielleicht nicht so geeignet.

Grüße, Falk.

Andreas Kunert-Werneburg wrote:
> Hallo,
> 
> ich habe ein kleines Problem mit einem Skript, welches XML-Dateien 
> parsen soll.
> Solange valides XML geliefert wird, klappt auch alles super.
> Nur wenn es nicht valide ist, habe ich das Problem.
> 
> Das Skript arbeitet zweistufig. Zuerst werden die XML-Dateien aus dem 
> Eingangsverzeichnis in das Warte-Verzeichnis verschoben und dann der 
> Parser aufgerufen, der dann die Dateien im Warte-Verzeichnis abarbeiten 
> soll.
> 
> Jetzt würde ich gern VOR dem Verschieben testen, ob das XML-File valide 
> ist. Ist das nicht der Fall, so soll es in einen anderen Ordner 
> verschoben werden und der Parser NICHT gestartet werden.
> 
> ich arbeite mit XML::LibXML und frage mich, ob ich bei
> my $document = $parser->parse_file($xmlfilename);
> einen Returnwert erhalten würde, mithilfe dessen ich die entsprechende 
> Verschiebe-Operation einleiten kann.
> 
> Mal laienhaft:
> ------------------------------------------
> $parser = new XML::LibXML;
> if($parser->parse_file($xmlfile) == TRUE){
> verschiebe nach A und rufe Parser auf;
> } else {
> verschiebe nach B und melde Fehler per Mail;
> }
> -------------------------------------------
> 
> Mir gehts eigentlich nur darum, zu prüfen, ob die Datei valides XML 
> enthält. Den Rest bekomme ich dann schon hin.
> 
> Danke!
> 
> Gruß Andreas
> 
> _______________________________________________
> Dresden-pm mailing list
> Dresden-pm at pm.org
> http://mail.pm.org/mailman/listinfo/dresden-pm
> 
> 



Mehr Informationen über die Mailingliste Dresden-pm