Thread Array-Elemente sortieren/gruppieren
(7 answers)
Opened by turbo at 2012-03-08 12:59
Es ist klar, daß ein XML-Modul die bessere Lösung ist.
Zur Not kann man's auch mit einer RegEx parsen. Hier mal ein Beispiel, das aber noch viele Fehler enthalten dürfte (und auch nicht sonderlich schön ist): 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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #!/usr/bin/perl use warnings; use strict; my $a = <<HERE; <xml> <knoten> <2>!!!</2> <y>15</y> </knoten> <knoten> <4>!!!</4> <y>30</y> </knoten> </xml> HERE my @b = split("\n", $a); my @xvals = (2, 4, 6, 8); my @collection = (); my $i; my $u; for ($i=0; $i < $#b; $i++) { foreach $u (@xvals) { if ($b[$i] =~ /<$u>[^>]*<\/$u>/) { if ($b[$i + 1] =~ /<.+>([^>]*)<\/.+>/) { my $href = {$u => $1}; push(@collection, $href); last; } else { die "Error: No y-line after x-line,"; } } } } my %result = (); foreach $i (@xvals) { foreach $u (@collection) { my %hash = %{$u}; my @onehashkey = keys(%hash); my $key = $onehashkey[0]; if ($key eq $i) { $result{$key} += $hash{$key}; } } } foreach $i (sort(keys(%result))) { print "$i => $result{$i}\n"; } |