Ik ben bezig om in perl een script te maken dat een xml file inleest en wegschrijft naar mysql (Sql)
1x per dag moet er namelijk een xml dump worden ingelezen van uit een oracle database en weggeschreven worden naar een mysql database. RTG kan dit bestand dan opnieuw inlezen en snmp verzoeken naar nieuwe routers sturen.
Ik heb het volgende script gemaakt en de volgende xml dump maar het werkt niet
test.pl:
#!/usr/bin/perl
use strict;
use DBI;
use XML::XPath;
use XML::XPath::XMLParser;
my $dbh = DBI->connect ("DBI:mysql:xml", "login", "password", { RaiseError => 1, PrintError => 0});
my $xp = XML::XPath->new (filename => "test.xml");
my $nodelist = $xp->find ("//row");
foreach my $row ($nodelist->get_nodelist ())
{
$dbh->do ("INSERT INTO xmltest (LIN_ID, IP_ADDRESS, AANSLUIT_POORT) VALUES (?,?)",
undef,
$row->find ("LIN_ID")->string_value (),
$row->find ("IP_ADDRESS")->string_value (),
$row->find ("AANSLUIT_POORT")->string_value (),
);
}
$dbh->disconnect ();
test.xml:
<?xml version="1.0" encoding="UTF-8"?><database><row><LIN_ID>4646346</LIN_ID><IP_ADDRESS>45345435</IP_ADDRESS><AANSLUIT_POORT>1231412</AANSLUIT_POORT></row></select></database>
De fout:
xml processing instruction not at start of external entity at line 1, column 2, byte 2:
<?xml version="1.0" encoding="UTF-8" ?>
=^
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" />
- <ROWSET>
at /usr/lib/perl5/site_perl/i386-linux/XML/Parser.pm line 187
Weet iemand wat hier niet goed gaat? Heb al zitten googelen maar niks gevonden
1x per dag moet er namelijk een xml dump worden ingelezen van uit een oracle database en weggeschreven worden naar een mysql database. RTG kan dit bestand dan opnieuw inlezen en snmp verzoeken naar nieuwe routers sturen.
Ik heb het volgende script gemaakt en de volgende xml dump maar het werkt niet
test.pl:
#!/usr/bin/perl
use strict;
use DBI;
use XML::XPath;
use XML::XPath::XMLParser;
my $dbh = DBI->connect ("DBI:mysql:xml", "login", "password", { RaiseError => 1, PrintError => 0});
my $xp = XML::XPath->new (filename => "test.xml");
my $nodelist = $xp->find ("//row");
foreach my $row ($nodelist->get_nodelist ())
{
$dbh->do ("INSERT INTO xmltest (LIN_ID, IP_ADDRESS, AANSLUIT_POORT) VALUES (?,?)",
undef,
$row->find ("LIN_ID")->string_value (),
$row->find ("IP_ADDRESS")->string_value (),
$row->find ("AANSLUIT_POORT")->string_value (),
);
}
$dbh->disconnect ();
test.xml:
<?xml version="1.0" encoding="UTF-8"?><database><row><LIN_ID>4646346</LIN_ID><IP_ADDRESS>45345435</IP_ADDRESS><AANSLUIT_POORT>1231412</AANSLUIT_POORT></row></select></database>
De fout:
xml processing instruction not at start of external entity at line 1, column 2, byte 2:
<?xml version="1.0" encoding="UTF-8" ?>
=^
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" />
- <ROWSET>
at /usr/lib/perl5/site_perl/i386-linux/XML/Parser.pm line 187
Weet iemand wat hier niet goed gaat? Heb al zitten googelen maar niks gevonden
Recht op morgen heb ik niet, maar morgen wordt beter dan vandaag en gisteren bestaat niet.