Hey all,
I ended up using XML::Twig for removing and re-adding the appropriate filenames. My code looks something like this:
my $t = new XML::Twig( ignore_elts => {'/bxh/datarec/filename' => 1,
'/bxh/datarec/fileoffset' => 1,
'/bxh/datarec/filerecordsize' => 1,
},
TwigHandlers =>
{
'/bxh/datarec' => \&add_filenames,
},
pretty_print=>'indented',
);
$t->parsefile($file); # build it
$t->print; # output the twig
sub add_filenames {
my($t,$drec) = @_;
my @filenames = glob "mri*.img";
foreach my $file(@filenames) {
my $elt = new XML::Twig::Elt('filename',$file);
$elt->paste('last_child',$drec);
my $size = -s $file;
$elt = new XML::Twig::Elt('fileoffset','0');
$elt->paste('last_child',$drec);
$elt = new XML::Twig::Elt('filerecordsize',$size);
$elt->paste('last_child',$drec);
}
}
Thanks for everyone's input! |