Herbaer::DataInserter


Anwendung

use Herbaer::DataInserter;

# Callback-Funktion
sub show_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);
  

Funktionen

$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_ns

Der 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/DBNAME. Der Namensraum des XML-Wurzelelements kann ein anderer sein.

$callback

Eine 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_name

Der Name einer Datenbank-Tabelle.

$hashref_rowdata

Eine HASH-Referenz. Die HASH-Schlüssel sind die Namen der Felder der Datenreihe, die Werte die Feldinhalte.

$verb

Eine 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.

Benutzte Module

XML::SAX::ParserFactory

Anwendung

Das Modul Herber::DataInserter wird von einem Skript benutzt, das von der Transformation dump_instert.xslt erzeugt wird.