Thread <b>*</b> mit perl aus XML filtern? (64 answers)
Opened by Hunnenkoenig at 2009-10-27 18:57

topeg
 2009-10-30 14:15
#127603 #127603
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Ich habe das Script verwendet um den Baum zu erzeugen:
Um genau zu sein es war ein klein wenig anders, weshalb er einen Teil übersprungen hat, ist mir aber nicht aufgefallen. :/
Ich habe die Funktion aus einem Anderen Script heraus kopiert, ohne genau auf zu passen.
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
#!/usr/bin/perl
use strict;
use warnings;
use LWP::Simple;
use XML::Simple;

my $currentSoftware = 321234472;
my $data=get("http://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=$currentSoftware&mt=8");
my $ref = XMLin($data);
print display_tree($ref,'');

sub display_tree
{
  my $ref=shift;
  my $shiftin=shift || '';
  my $ret='';
  if(ref($ref) eq 'ARRAY')
  {
    for my $cnt (0..$#$ref)
    {
      $ret.=$shiftin.$cnt;
      my $lst=display_tree($ref->[$cnt],$shiftin."  ");
      if(index($lst,"\n")>-1)
      { $ret.=":\n".$lst; }
      else
      { $ret.="=$lst\n"; }
    }
  }
  elsif(ref($ref) eq 'HASH')
  {
    for my $key (sort keys(%$ref))
    {
      $ret.=$shiftin.$key;
      my $lst=display_tree($ref->{$key},$shiftin."  ");
      if(index($lst,"\n")>-1)
      { $ret.=":\n".$lst; }
      else
      { $ret.="=$lst\n"; }
    }
  }
  else
  {
    $ref=~s/[\n\r]/ /gs;
    $ret=$ref;
  }
  return $ret;
}


Dazu nochmal der Baum, ich hoffe er ist jetzt vollständig :)
http://nopaste.info/4e7ea22dbd.html

View full thread <b>*</b> mit perl aus XML filtern?