Thread Problem mit Datei einlesen: Perl gibt nur Nummern aus (6 answers)
Opened by TheDHK at 2007-01-31 17:58

TheDHK
 2007-01-31 17:58
#73890 #73890
User since
2007-01-19
37 Artikel
BenutzerIn
[default_avatar]
Hi Leute,
ich möchte eine XML-Datei einlesen. Diese ist so aufgebaut:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE profildtd SYSTEM "newsdtd.dtd">
<news>
<newsservice>
<name>AFP</name>
</newsservice>
<newsservice>
<name>ANSA</name>
</newsservice>
...
</news>


Dieses Skript besteht aus 46 Zeilen. Es ist so aufgebaut, dass die Anzahl der Zeilen - 4 durch drei teilbar ist. Daher habe ich folgendes Skript:
Code (perl): (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
#!/usr/bin/perl -w
use strict;
use warnings;

our @av_news;

# Profil-Datei einlesen

my $rw = open(FILE,'E:\Eigene Dateien\Programme\Scrutator\news.xml');
our @news = <FILE>;


# Zeilen bestimmen
our $newslength = @news;

# XML-Datei darf nur bestimmte Länge haben

if(($newslength - 4) % 3 == 0) {
  # Zweite Zeile - Profilname  
  for(my $i = 4;$i < $newslength;$i += 3) {
    # Unnötiges abschneiden
    my $langstring = substr($news[$i],10);
    # Name ermitteln
    for(my $j = 0;$j < 8;$j++) {
      chop($langstring);
      }
    my $length = @av_news;
    $av_news[$length] = $langstring;
    }
} else {
  #...
}

close(FILE); 

1;


Wie ihr seht, überprüfe ich mit
Code (perl): (dl )
if(($newslength - 4) % 3 == 0)
, ob die oben genannte Bedingung erfüllt ist. Lasse ich nun @av_news; und @news; mit print() ausgeben, erhalte ich folgende Ausgabe:
14
46

Ich weiß auch woher diese Zahlen kommen: 46 ist die Anzahl der Zeilen. 46 - 4 = 42. 42 : 3 = 14. Allerdings sollte @news; die ganze Datei ausgeben und @av_news die zugeschnittenen einzelnen Zeilen.
Ich hab das vorher schon mit anderen XML-Dateien gemacht und da hatte ich noch keine ähnlichen Probleme.

Weiß jemand, wo hier das Problem liegt? Grüble schon seit Tagen darüber, aber egal was ich gemacht habe, nix hat gefunzt.

Gruß

TheDHK

View full thread Problem mit Datei einlesen: Perl gibt nur Nummern aus