Schrift
[thread]6661[/thread]

CSV 2 XML Datenkonverter: Perlprogramm, dass CSV zu XML umwandelt (Seite 4)



<< |< 1 2 3 4 >| >> 39 Einträge, 4 Seiten
renee
 2005-02-02 14:10
#51287 #51287
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mach:
Code: (dl )
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
31
32
33
34
#! /usr/bin/perl

use strict;
use warnings;
use DBI;
use XML::Writer;
use IO::File;

my $output = new IO::File(">output.xml"); die $! unless($output);
my $writer = new XML::Writer(OUTPUT => $output);

my $dbh = DBI->connect("DBI:CSV:f_dir=C:/;csv_sep_char=\\;") or die $DBI::errstr;
$dbh->{'csv_tables'}->{'info'} = { 'file' => 'info2.csv'};
my $sth = $dbh->prepare("SELECT * FROM info");
$sth->execute();
my @names = @{$sth->{NAME}};
$writer->startTag('Entries');
while(my @row = $sth->fetchrow_array()){
$writer->startTag('Entry');
$writer->characters("\n");
for(0..$#names){
$writer->startTag($names[$_]);
$writer->characters($row[$_]);
$writer->endTag($names[$_]);
$writer->characters("\n");
}
$writer->endTag('Entry');
}
$writer->endTag('Entries');
$sth->finish();
$dbh->disconnect();

$writer->end();
$output->close();


Jetzt sollte es funktionieren...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
crypt0
 2005-02-02 14:22
#51288 #51288
User since
2005-01-25
23 Artikel
BenutzerIn
[default_avatar]
langsam wirds. jetzt stimmt nur noch das xml noch nicht so ganz

<Entries><Entry>
<Überschrift1 Überschrift2>Wer1 wert 2 ....</Überschrift1 Überschrift2 ...>
</Entry>....</Entries>
renee
 2005-02-02 14:29
#51289 #51289
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dann scheint aber was mit der CSV-Datei nicht zu stimmen... Ich habe hier ein Probe-XML generiert, da hat es einwandfrei funktioniert...

Mach doch mal
Code: (dl )
1
2
3
use Data::Dumper; # das kommt nach use strict; und use warnings;

print Dumper(\@names); # nach my @names = [...]


Und schau Dir am besten nochmal die CSV-Datei an...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
crypt0
 2005-02-02 14:36
#51290 #51290
User since
2005-01-25
23 Artikel
BenutzerIn
[default_avatar]
wie soll das csv denn aussehen ?
weil meins sieht in etwa so aus:
Überschrift1 Überschrift2 Ü3 ...
Wert1 Wert2 Wert3 ...


Wenn ich das von dir genannte einbinde gibt er mir auf der konsole $VAR1 = [ Überschrift1 Überschrift2 .... ]
renee
 2005-02-02 14:40
#51291 #51291
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dann wäre der Seperator aber nicht ;, sondern das " " (Leerzeichen). Das musst Du auch im Perl-Code bei der DB-Verbindung angeben... Sonst werden die Spalten völlig falsch aufgeteilt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
crypt0
 2005-02-02 15:00
#51292 #51292
User since
2005-01-25
23 Artikel
BenutzerIn
[default_avatar]
Okay habs mal auf tabulator angepasst jetzt funktionierts *freu*
Aber er macht mir nach jeder Zeile vom csv im xml leere tags.
also
<Ü1>wert1</Ü1>  (erste zeile csv)
<Ün>wertn</Ü1>
<></>
<Ü1>wert1</Ü1>  (nächste Zeile csv)
<Ün>wertn</Ü1>
<></>

wie kann ich die leertags jetzt noch vermeiden ?

okay bei mir im CSV kommt nach der letzten Überschrift noch 1 tab wenn ich das entferne gehts einwandfrei aber kann ich das irgendwie scriptmäßig abfragen und entfernen?\n\n

<!--EDIT|crypt0|1107349440-->
renee
 2005-02-02 15:06
#51293 #51293
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Probier mal:
Code: (dl )
1
2
3
4
5
6
7
 for(0..$#names){
next unless($names[$_]);
$writer->startTag($names[$_]);
$writer->characters($row[$_]);
$writer->endTag($names[$_]);
$writer->characters("\n");
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
crypt0
 2005-02-02 15:13
#51294 #51294
User since
2005-01-25
23 Artikel
BenutzerIn
[default_avatar]
jap funktioniert.

Danke an alle die sich hier beteiligt haben.
Besonderen Dank an renee.
Ihr seit die besten. :D
esskar
 2005-02-02 15:27
#51295 #51295
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=crypt0,02.02.2005, 14:13]Ihr seit die besten. :D[/quote]
sowieso! :)
<< |< 1 2 3 4 >| >> 39 Einträge, 4 Seiten



View all threads created 2005-01-25 10:39.