Thread Auslesen und Parsen einer Datei (23 answers)
Opened by Ando at 2009-05-04 19:40

Gast Ando
 2009-05-04 19:40
#121152 #121152
Hallo liebe Perl-Community.

Ich hoffe Ihr könnt mir weiter helfen. Ich sag es von vorne rein ich hab
gar keine Ahnung von Perl und da liegt das Problem.

Auf unserem Server wird ein Kunde gehostet der Perl in seinen Scripten einsetzt. Vom Programmieren hat er auch keine Ahnung es ist ein gekauftes Script. Jetzt tritt folgendes Problem auf.

Es wird versucht eine XML-Ähnliche Datei einzulesen und zu Parsen. Ist die Datei kleiner als 33KB funktioniert es ohne Probleme sobald die datei grösser ist geht es nicht mehr und wir wissen nicht woran es liegen kann. Hier der Code der das Ganze verarbeitet.

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
35
36
37
38
39
sub parseXMLfile {
my $file = shift;
my $xml;
my %xml;

# datei einlesen
if ( dbLockOpen( IN, "<$file" ) ) {
while (<IN>) { $xml .= $_; }
dbLockClose( IN, "$file" );
}
else {
return;
}
# xml-tags suchen
while ( ( $xml =~ /(<([a-zA-Z0-9\-_]+)>)/ ) ) {
my $tagName = $2;
my $tag = $1;

if ( ( $xml =~ /<($tagName)>((.|\n)*?)<\/$tagName>/i ) ) {
# gefunden tag speichern
my $tag = $1;

# von $tag umschlossenen text suchen
$xml =~ /(<$tag>((.|\n)*?)<\/$tag>)/i;
# value speichern
$value = $2;

# gesamten gefundenen tag loeschen
$xml =~ s/(<$tag>((.|\n)*?)<\/$tag>)//i;
$xml{ lc($tag) } = $value;
}
else {
$xml =~ s/$tag//
; # gefundenen anfangstag loeschen (da kein endtag vorhanden)
}
}

return %xml;
}


Hier der aufbau der Datei.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
<VERSION>1.0</VERSION>
<HTML>on</HTML>
<REPLY-TO>info@example.org</REPLY-TO>
<FROM>XXXXX</FROM>
<ATTACH></ATTACH>
<SUBJECT>XXXXXX</SUBJECT>
<FILTERS></FILTERS>
<TRACKOPENINGS></TRACKOPENINGS>
<PERSONALIZEDTRACKING></PERSONALIZEDTRACKING>
<CHARSET>ISO-8859-1</CHARSET>
<HTML-PART></HTML-PART>
<PLAIN-PART></PLAIN-PART>


Der meiste Text steht unter
Code: (dl )
<HTML-PART></HTML-PART>
und genau das wird falsch verarbeitet. Das sonderbare ist.. das es auf einem anderen server ohne probleme funktioniert hat. Liegt das vielleicht an irgendwelchen Apache/Perl/CGI einstellunge.

Ich hoffe sehr das mir jemand helfen kann da ich dieser Sache schon verzweifle. :((((

mod-edit pq: email-adresse anonymisiert
mod-edit renee: dateinamen auf wunsch ge"x"t
Last edited: 2009-05-04 21:04:53 +0200 (CEST)

View full thread Auslesen und Parsen einer Datei