http://www.perlmonks.org?node_id=1002459


in reply to Re: How to return two and more values by parsing XML with XML::Rules?
in thread How to return two and more values by parsing XML with XML::Rules?

Wow thanks!
It works with LK_Keys as well:
#!/usr/bin/perl use strict; use warnings; use Data::Dump qw/ dd /; use XML::Twig ; my( %os, @amk ); XML::Twig->new( twig_handlers => { 'AM_Key' => sub { # print $_->xpath, "\n"; push @amk, $_->trimmed_text; }, 'LK_Key' => sub { # print $_->xpath, "\n"; push @amk, $_->trimmed_text; }, 'Outpatient_Service' => sub { # print $_->xpath, "\n"; $os{ shift @amk }++ while @amk; }, }, )->xparse( shift ); my $ref = { Outpatient_Services => \%os, }; # dd $ref; use YAML::XS(); print YAML::XS::Dump( $ref);
prints:
Outpatient_Services: AM01: 2 AM02: 1 AM04: 1 LK01: 1 LK02: 1