use strict;
use DBI;
use XML::XPath
use XML::XPath::XMLParser;
my $dbh = DBI->connect ("DBI:mysql:database",
"root", "password",
{ RaiseError => 1, PrintError => 0});
my $xp = XML::XPath->new (filename => "input_file.xml");
my $nodelist = $xp->find ('//row');
foreach my $row ($nodelist->get_nodelist ())
{
$dbh->do ("INSERT INTO users1 ( create_string, username) VALUES (?, ?)",
undef, # no need for \%attr
$row->find ("CreateDate")->string_value () =~ s/(\d\d\d\d-\d\d-\d\d)T(\d\d:\d\d:\d\d).*00/$1 $2/g,
$row->find ("UserName")->string_value ());
}
$dbh->disconnect ()
####
Sample data
2008-03-17T13:31:14.345-07:00
foo
michael@example.com
a58d0b09-4f97-42ef-901e-cee41103bc12
2008-04-11T14:59:57.123-07:00
bar
spot@example.com
4b618e05-1eca-494b-baa5-ab85bd46f0f3
####
create_table_users1.sql
CREATE TABLE users1
(
create_string datetime ,
username varchar(32) );