package EPrints::Plugin::Stats::Export::XML; use EPrints::Plugin::Stats::Export; @ISA = ('EPrints::Plugin::Stats::Export'); use strict; # Stats::Export::XML # # Export stats data to XML. sub mimetype { 'text/xml' } sub export { my( $self, $stats ) = @_; # should be set by something else: binmode( STDOUT, ":utf8" ); print STDOUT "\n\n"; $self->print_context( $stats ); $stats->render_objects( 'description', 1 ); my @records; foreach my $data (@{$stats->data}) { my @record; foreach my $k (keys %$data) { my $v = $data->{$k}; push @record, "<$k>$v"; } push @records, "".join("\n",@record).""; } print STDOUT "".join("",@records)."\n"; return; } # TODO: any print'ed values should be XML escape'd sub print_context { my( $self, $stats ) = @_; my $context = $self->get_export_context( $stats ); my $origin = $context->{origin}; print STDOUT < $origin->{name} $origin->{url} ORIGIN if( my $timescale = $context->{timescale} ) { print STDOUT < $timescale->{format} $timescale->{from} $timescale->{to} TIMESCALE } if( my $set = $context->{set} ) { print STDOUT < $set->{name} $set->{value} $set->{description} SET } } 1;