Thread XML mit unterschiedlichen Knoteninhalten parsen (12 answers)
Opened by schnerd at 2012-07-19 18:32

pq
 2012-07-20 09:55
#160084 #160084
User since
2003-08-04
12208 articles
Admin1
[Homepage]
user image
Guest schnerd
Ich bleibe jetzt an der Stelle hängen, wo unter Quelle->members->reference zwei Einträge stehen. Kann mir da bitte bitte jemand helfen?

jetzt ist die frage, womit genau hast du probleme? die frage ist ja erstmal, was willst du machen, wenn du mehrere einträge hast.
vielleicht wäre es erstmal am sinnvollsten, wenn du XML::Simple sagst, dass der key "reference" immer ein array erzeugen soll, das kannst du mit der option "ForceArray" tun.

aus deinem code
Code (perl): (dl )
print "Quelle: ", $data->{startpunkt}->{rule}->{rule}->{$i}->{src}->{members}->{reference}->{Name}, "\n";

würdest du dann sowas machen:
Code (perl): (dl )
1
2
3
4
my $refs = $data->{startpunkt}->{rule}->{rule}->{$i}->{src}->{members}->{reference};
for my $ref (@$refs) {
    print "Quelle: $ref->{Name}\n";
}


genereller tip: es ist nicht gut lesbar und auch nicht unbedingt effizient, an jeder stelle den langen zugriffspfad auf deine datenstruktur zu benutzen.
wenn allen der pfad $data->{startpunkt}->{rule}->{rule}->{$i} gemeinsam ist, dann erstell dir eine temporäre variable.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread XML mit unterschiedlichen Knoteninhalten parsen