Thread XML mit unterschiedlichen Knoteninhalten parsen
(12 answers)
Opened by schnerd at 2012-07-19 18:32 2012-07-20T08:49:51 schnerd 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 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/ ![]() 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: ![]() ![]() |