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_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/
. Der Namensraum des XML-Wurzelelements kann ein anderer sein.DBNAME
$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
.
XML::SAX::ParserFactory
Das Modul Herber::DataInserter
wird von einem Skript benutzt, das von der Transformation dump_instert.xslt
erzeugt wird.