#!/usr/bin/perl --
use warnings;
use strict;
use XML::Rules;
use Text::CSV_XS;
Main(@ARGV);
exit(0);
sub Main {
use autodie;
open my $File, shift || 'alpha31.xml';
RuleCvs( $File, \*STDOUT );
#~ use FileHandle;
#~ RuleCvs( FileHandle->new(shift // 'alpha31.xml'), \*STDOUT ); use
+ 5.10.0;
#~ RuleCvs( FileHandle->new(shift || 'alpha31.xml'), \*STDOUT );
#~ RuleCvs( FileHandle->new(shift), \*STDOUT );
} ## end sub Main
BEGIN {
my (@Heads) = qw(
Subject
Course
Title
Description
Prequisites
Corequisites
Requisites
LectureHours
LaboratoryHours
CreditHours
Flags
);
sub RuleCvs {
my ( $InFh, $OutFh ) = @_;
my $csv = Text::CSV_XS->new( { eol => "\n" } );
my $parser = XML::Rules->new(
rules => [
_default => 'content',
Class => sub {
$csv->print( $_[4]->{parameters}, [ @{ $_[1] }{@Heads} ] );
return;
}
]
);
print $OutFh join( ',', @Heads ), "\n";
$parser->parse( $InFh, $OutFh );
return;
} ## end sub RuleCvs
} ## end BEGIN
__END__