Thread XML-Parser 2 Datei (5 answers)
Opened by Henri at 2015-04-08 18:19

Linuxer
 2015-04-09 19:06
#180616 #180616
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
Ich komme auf zwei Ideen; beide ungetestet.

Wenn die Subroutine für jeden Parameter einzeln aufgerufen wird, folgender Schnellschuß:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
my $twig1= XML::Twig->new(    
        twig_handlers => { 
                'Parameter' => sub { 
                        # use 'fault' if name is not defined; Operator '//' is available since perl 5.10.1
                        my $attr_name = $_->{'att'}->{'name'} // 'fault';
                        print $FhResult $attr_name . ",";
                },
        },
);


Wenn die Subroutine für alle Parameter aufgerufen wird und $_->{att}->{name} eine Liste liefern würde (was ich derzeit kaum glauben kann), folgender Vorschlag:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
my $twig1= XML::Twig->new(    
        twig_handlers => { 
                'Parameter' => sub { 
                        local $, = ",";

                        my $item = $_;          # copy "original" $_ to $item; because map uses $_ as well
                        my @names = map { defined ? $_ : 'fault' } $item->{'att'}->{'name'};

                        print $FhResult @names, "";
                },
        },
);
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!

View full thread XML-Parser 2 Datei