use Herbaer::DataInserter; # Callback-Funktion subshow_datarow{ my ($table_name,$hashref_rowdata) = @_; my $field_name; my $value; while ( ($field_name, $value) = each %$hashref_rowdata ) { print "$table_name.$field_name = $value\n"; } } my $path_to_xmlfile = "/path/to/dbdump/DBNAME.xml"; my $xml_namespace = "http://herbaer.de/xmlns/20201201/dbcontents/DBNAME"; my $verbose = 0; Herbaer::DataInserter ->new($xml_namespace,\&show_datarow,$verbose) ->parse_file($path_to_xmlfile);
$di = Herbaer::DataInserter -> new ($xml_ns, $callback, $verb)Der Konstruktor ergibt ein neues Objekt, das dazu dient, eine XML-Datei mit dem Inhalt einer Datenbank zu lesen.
$xml_nsDer XML-Namensraum der XML-Elemente, die den Inhalt der Datenbank enthalten. Der XML-Namensraum ist für die Datenbank-Struktur spezifisch, typisch ist die Form http://herbaer.de/xmlns/20201201/dbcontents/. Der Namensraum des XML-Wurzelelements kann ein anderer sein.DBNAME
$callbackEine Funktion, die für jede Datenreihe aufgerufen wird. In einer typischen Anwendung fügt sie eine Datenreihe in eine Datenbank ein. Die beiden Parameter sind:
$table_nameDer Name einer Datenbank-Tabelle.
$hashref_rowdataEine HASH-Referenz. Die HASH-Schlüssel sind die Namen der Felder der Datenreihe, die Werte die Feldinhalte.
$verbEine ganze Zahl, die den Umfang der Meldungen nach STDERR steuert. Dieser Parameter ist optional. Wenn er nicht definiert oder null ist, erfolgen keine Meldungen.
$di -> parse_file ($path_to_xmlfile)Verarbeitet die XML-Datei unter dem Dateipfad $path_to_xmlfile.
XML::SAX::ParserFactory
Das Modul Herber::DataInserter wird von einem Skript benutzt, das von der Transformation dump_instert.xslt erzeugt wird.