I was referring to the yaml, and FWIW, ysh doesn't like that YAML, which I assume is supposed to be
This is what I came up with, which took waaay too long, the rules are hard to remember
#!/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
- {}