Thread XML::Parser::parsefile durch die Struktur ...: iterieren, aber wie ? (18 answers)
Opened by Matze at 2006-01-30 17:29

Matze
 2006-01-30 17:29
#62458 #62458
User since
2005-08-29
222 Artikel
BenutzerIn
[Homepage] [default_avatar]
So, ich bin wieder da, und habe auch gleich wieder eine Frage:
Mit XML::Parser::parsefile parse ich meine XML-Struktur, und erhalte auch ein ganz gutes Ergebniss.
Jetzt muss ich aber da durch iterieren, um die Struktur auch benutzen zu können.
Und da scheitert es dann auch schon.
Ich weiß leider nicht WIE ich durch die Komplizierte Struktur iterieren soll, da die Struktur ja auch:
1) unbegrenzt verschachtelt sein kann
2) aus Arrays, Hashes, Arrays, Hashes ... besteht

Ein kleines Beispiel:
Code (perl): (dl )
1
2
3
4
5
6
7
8
use strict;
use XML::Parser;

my $xml = XML::Parser -> new(Style => 'Tree');
my $tree = $xml->parsefile("demo.xml");

use Data::Dumper;
print Dumper($tree);


demo.xml:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
<xml>
<perl>
 print "Demo:\n";
</perl>
<window width="300" height="200" xpos="100" ypos="100">
 <title>Beispiel</title>
</window>
<perl>
 print "Ende.\n";
 exit;
</perl>
</xml>


Ausgabe:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
$VAR1 = [
         'xml',
         [
           {},
           0,
           '
',
           'perl',
           [
             {},
             0,
             '
 print "Demo:\\n";
'
           ],
           0,
           '
',
           'window',
           [
             {
               'xpos' => '100',
               'width' => '300',
               'ypos' => '100',
               'height' => '200'
             },
             0,
             '
 ',
             'title',
             [
               {},
               0,
               'Beispiel'
             ],
             0,
             '
'
           ],
           0,
           '
',
           'perl',
           [
             {},
             0,
             '
 print "Ende.\\n";
 exit;
'
           ],
           0,
           '
'
         ]
       ];


Ich hoffe ihr könnt mir helfen.
Ich habe jetzt schon mehrere Stunden gegooglet und nichts gefunden.
Auch bei der Perl-Community ->-> Suche hab ich nichts gefunden.

MfG. Matze
Mit freundlichen Grüßen: Matze

View full thread XML::Parser::parsefile durch die Struktur ...: iterieren, aber wie ?