Thread Xml Die Werte einzeln auslesen
(14 answers)
Opened by Arenas at 2015-06-14 11:26
Vorab: Ich habe keine große Erfahrung mit XML und dessen Verarbeitung mit den verschiedenen Modulen. Meine Erfahrung beschränkt sich auf ein paar Forenbeiträge wie Deiner, in denen ich versucht habe, zu helfen.
Ich habe folgenden Code erstellt: 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 #! perl use strict; use warnings; use v5.010.000; # enable "say" and other stuff use XML::Twig::XPath; use Data::Dumper; # for checking data structures my $t = XML::Twig->new( pretty_print => 'indented', twig_roots => { 'work' => \&fetch }, ); sub fetch { my ( $t, $work ) = @_; my %data; # limit actions to "<work eu=...>" if ( exists $work->{att}->{eu} ) { # hopefully only one root within "<work ...>" my $root = $work->first_child('root'); # save attribute data in hash %data %data = %{ $root->{att} }; # work with hash %data do_your_math( %data ); } } sub do_your_math { my %data = @_; # show content of %data print Data::Dumper->new( [ \%data ], [ '*data' ] )->Dump(); } $t->parseurl("http://arenas.pagesperso-orange.fr/divers/find.xml"); Mit dem bekomme ich folgendes Ergebnis: Damit hast Du die Werte verfügbar als $data{a} bis $data{d} und kannst sie entsprechend weiterverarbeiten. Vermutlich geht das noch eleganter und besser, aber das wäre eine Aufgabe für jene, die mehr Erfahrung mit XML-Verarbeitung haben. meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |