use strict;
use utf8;
use Encode qw(encode_utf8);
use warnings;
use XML::LibXML;
use XML::LibXSLT;
use POSIX;
use Encode;
use File::Path;
use MIME::Base64 qw(encode_base64);
use Storable;
binmode(STDOUT, ":utf8");

my $parser    = XML::LibXML->new();
my $path="./ORIGINAL/*.xml";

my $i=0;

foreach my $file ( glob $path ) {
		
		my $root= $parser->parse_file($file);		
		my @nodes= $root->findnodes('//Objekt');
		my $i=0;
		my $size= scalar(@nodes);
    	my $count = 0;
    	my $preval=-1;
		
		foreach my $node  (@nodes)
		{
			my $pp='./SPLITTED/out'.'_'.$i.".xml";
			my $document     = XML::LibXML::Document->new( '1.0', 'UTF-8' );
			my $oaiNode =  XML::LibXML::Element->new( 'record' );
			my $oaiHeader = XML::LibXML::Element->new( 'header' );
			$oaiHeader->appendTextChild( 'identifier' , $node->find('./Signatur/text()'));
			my $oaiMetadata = XML::LibXML::Element->new( 'metadata' );
			$oaiMetadata->appendChild($node);
			$oaiNode->appendChild($oaiHeader);
			$oaiNode->appendChild($oaiMetadata);
			
			$document->setDocumentElement($oaiNode);			
			$document->toFile($pp,1);
			$count= $count +1;
			my $tmp= floor(($count / $size)*100);
			if ($preval != $tmp)
			{
	    		print "\n";
	    		print "Progress : $tmp\% \n"; 
	    		$preval=$tmp;
			}
 			$i++; 			
		}	
	}
	
	