#!/usr/bin/perl --
use strict;
use warnings;
use Archive::Zip;
use XML::XPath;
use autodie qw' chdir unlink ';
Main( @ARGV );
exit( 0 );
sub Main {
( undef, my $zipfile ) = Archive::Zip::tempFile();
my $fillThisFile = "$zipfile-junk.xml";
{
my $zip = Archive::Zip->new();
$zip->addString('c' x 300, 'bunchOfCs.txt');
$zip->addString(q~#
#1~, 'test.xml');
$zip->writeToFileNamed( $zipfile );
}
{
my $zip = Archive::Zip->new( $zipfile );
my @xml = $zip->membersMatching( '.*\.xml' );
$zip->extractMember( $xml[0] , $fillThisFile );
my $xml = XML::XPath->new(filename => $fillThisFile);
for my $node ( $xml->find('//a')->get_nodelist) {
print $node->toString ,"\n";
}
}
unlink $zipfile, $fillThisFile;
}
__END__
#
#1