1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#!/usr/bin/perl use DBI; use LWP::UserAgent; use XML::RSS; use Encode; use warnings "all"; # Datenbankverbindung aufbauen my $dbh=DBI->connect('dbi:mysql:***','***','***'); # Datei-Fetching mit LWP my $url = "http://www.dieter-broers.de/blog.xml"; my $ua = LWP::UserAgent->new(); $ua->agent('Opera'); my $response = $ua->get($url); my $ticker=$response->content(); # Irgendetwas aus dem RSS extrahieren und das in die Datenbank schreiben my $rss = XML::RSS->new(); $rss->parse($ticker); foreach $item (@{$rss->{'items'}}){ my $title = $item->{'title'}; my $sth = "INSERT INTO `meinetabelle` (`titel`) VALUES ('$title');"; my $query=$dbh->prepare($sth); $query->execute; } # Datenbankverbindung trennen $dbh->disconnect;
1 2 3 4 5 6 7
# ... my $ret=$lwp->get('http://www.example.org/xml_data.xml'); die unless $ret->is_success; my $xml=$ret->encoded_content(); $xml = Encode::encode("ISO-8859-1",$xml); $dbh->do('INSERT INTO whin_auch_immer (xml) VALUES (?)', undef, $xml); # ...
1 2 3 4 5 6
# ... my $ret=$lwp->get('http://www.example.org/xml_data.xml'); die unless $ret->is_success; my $xml=$ret->encoded_content(); $dbh->do('INSERT INTO whin_auch_immer (xml) VALUES (?)', undef, $xml); # ...
use Devel::Peek 'Dump'; print Dump($xml);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#!/usr/bin/perl use DBI; use LWP::UserAgent; use XML::RSS; use Encode; use warnings "all"; # Datenbankverbindung aufbauen my $dbh=DBI->connect('dbi:mysql:***','***','***'); # Datei-Fetching mit LWP my $url = "http://www.dieter-broers.de/blog.xml"; my $ua = LWP::UserAgent->new(); $ua->agent('Opera'); my $response = $ua->get($url); my $ticker=$response->content(); # Irgendetwas aus dem RSS extrahieren und das in die Datenbank schreiben my $rss = XML::RSS->new(); $rss->parse($ticker); foreach $item (@{$rss->{'items'}}){ my $title = $item->{'title'}; my $sth = "INSERT INTO `meinetabelle` (`titel`) VALUES ('$title');"; my $query=$dbh->prepare($sth); $query->execute; } # Datenbankverbindung trennen $dbh->disconnect;
2013-11-26T16:48:22 rtp_deHallo topeg,
hier nun das gewünschte Codebeispiel. (Es gibt sicherlich elegantere Wege, das zu tun, ich weiss.)
Code (perl): (dl )1 2 3 4 5... # Irgendetwas aus dem RSS extrahieren und das in die Datenbank schreiben my $rss = XML::RSS->new(); $rss->parse($ticker); ...
$rss->parse( encode( "utf8", $ticker ) );
QuoteCode: (dl )1
2
3my $sth = "INSERT INTO `meinetabelle` (`titel`) VALUES ('$title');";
my $query=$dbh->prepare($sth);
$query->execute;
QuoteDas von dir erwähnte $str=Encode::encode("ISO-8859-1",$str) funktioniert auch nicht wie erwartet, da die Daten schon binär sind (kein utf8-flag) wird nichts gewandelt. Wenn du vorher ein $str=Encode::decode("UTF-8",$str) gemacht hättest, wäre wahrscheinlich das erwartete heraus gekommen.