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

pq
 2012-07-20 11:28
#160093 #160093
User since
2003-08-04
12208 articles
Admin1
[Homepage]
user image
2012-07-20T08:49:51 schnerd
DDas Problem am ForceArray ist, dass ich dann mit $i nicht mehr durch die einzelnen XML-Einträge laufen kann. Ich muss diese leider von 1 bis $count durchwandern, da diese eine festgelegte Reihenfolge aufweisen.


das verstehe ich nicht. ForceArray ist doch nur dafür da, dass es jedesmal ein array wird und nicht nur, wenn es mehrere einträge gibt.
ForceArray => ["reference"]

also welche probleme macht dir ForceArray, wenn du doch eh schon bei mehreren einträgen arrays kriegst?

du kannst es auch weglassen und musst dann aber stattdessen immer abfragen, ob du ein hash oder eine arrayref vorliegen hast.

Quote
Was die Variable wegen einfacher Lesbarkeit angeht, das hab ich versucht, ich quote irgendwas falsch aus

Code: (dl )
my $xmlpath = "\$data->{fw_policie}->{rule}->{rule}->{\$i}";

ich verstehe nicht, was das tun soll. was soll $xmlpath für einen zweck haben?


ich schreibe es jetzt mal hin:
statt:
Code (perl): (dl )
1
2
3
4
5
6
7
if ($data->{startpunkt}->{rule}->{rule}->{$i}->{src}->{members}->{reference})  {
                print "Quelle: ", $data->{startpunkt}->{rule}->{rule}->{$i}->{src}->{members}->{reference}->{Name}, "\n";
}
elsif ($data->{startpunkt}->{rule}->{rule}->{$i}->{src}->{compound}->{compound}) {
                print "Quelle: ", $data->{startpunkt}->{rule}->{rule}->{$i}->{src}->{compound}->{compound}->{Name}, "\n";
}
...

legst du eine temporäre veriable an:
Code (perl): (dl )
1
2
3
4
5
6
7
8
my $item = $data->{startpunkt}->{rule}->{rule}->{$i};
if ($item->{$i}->{src}->{members}->{reference})  {
                print "Quelle: ", $item->{src}->{members}->{reference}->{Name}, "\n";
}
elsif ($item->{src}->{compound}->{compound}) {
                print "Quelle: ", $item->{src}->{compound}->{compound}->{Name}, "\n";
}
...


jetzt mal ehrlich, was ist lesbarer?

wenn du in datenstrukturen noch nicht so fit bist, willst du vielleicht auch einfach einbisschen was lesen?
http://perl-tutorial.org/
Perldoc:perldsc
Last edited: 2012-07-20 11:29:41 +0200 (CEST)
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