Sorry, I did not mention that I have run
'Capacities_Outpatient_Clinic_Special' => 'pass',
before the mentioned chunk of the script. Thank you for pointing that out.
Apart from that this is a fragment of a script that actually runs (only with fields translated into English). The above rule should not affect the code fragment however, perhaps I overook another mismatch?
Update It must be the result presentation that has to be adjusted in my fragment - it should be:
- Outpatient_Services:
AM11: 1
AM07: 1
AM04: 1
| [reply] [Watch: Dir/Any] [d/l] [select] |
#!/usr/bin/perl --
use strict; use warnings;
use XML::Rules;
use Data::Dump qw/ dd /;
my $ta = XML::Rules->new(
qw/ stripspaces 8 /,
rules => {
'Outpatient_Services' => 'no content',
'Outpatient_Service' => 'as array no content',
#~ 'Outpatient_Clinic' => 'content by AM_Key',
'Outpatient_Clinic' => sub {
#~ $rule->( $tag_name, \%attrs, \@context, \@parent_data, $parser)
#~ my ($tagname, $attrHash, $contexArray, $parentDataArray, $parser) =
+ @_;
my $amk = $_[1]->{AM_Key} ;
return unless $amk;
{ $amk => 1 };
},
#~ _default => sub { $_[0] => $_[1]->{_content} },
_default => 'content',
'Outpatient_Clinic_Special' => undef,
},
);
my $ref = $ta->parsefile( 'pm1002448.xml' );
dd $ref;
use YAML(); print YAML::Dump( $ref);
__END__
{
Outpatient_Services => {
Outpatient_Service => [
{ AM01 => 1 },
{ AM01 => 1 },
{ AM02 => 1 },
{},
{ AM04 => 1 },
{},
],
},
}
---
Outpatient_Services:
Outpatient_Service:
- AM01: 1
- AM01: 1
- AM02: 1
- {}
- AM04: 1
- {}
| [reply] [Watch: Dir/Any] [d/l] [select] |
Thank you very much! I noticed now ( but somewhat late :-) ) that your point was yaml output. I have corrected the output presentation in the original post and in the reply to your post.
My main problem however ist that I need to represent the LK-Keys at the same hierarchy level as the AM-Keys. That is, I do need the Outpatient_Clinic_Special infos.
Thank you again for your time I will try to build on your code.
| [reply] [Watch: Dir/Any] |