X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=samples%2Fzoom%2Fzoomdump;h=26a9893d889c4a350b62ddb1e4bac98ee0ef73e7;hb=370f6a934234652752aa1b26669489277c65dc3e;hp=5e436153929b8ed48f4ebd0691f61a77012053ca;hpb=bf137ec301ca61b40a1f59e1d74ef1c14c508118;p=ZOOM-Perl-moved-to-github.git diff --git a/samples/zoom/zoomdump b/samples/zoom/zoomdump index 5e43615..26a9893 100755 --- a/samples/zoom/zoomdump +++ b/samples/zoom/zoomdump @@ -1,7 +1,31 @@ #!/usr/bin/perl -w + +# Dumps the contents of the nominated Zebra database to a set of +# separate XML files with numeric names. + +use strict; +use warnings; use ZOOM; -my $target = $ARGV[0]; -my $conn = new ZOOM::Connection($target); + +if (@ARGV != 1) { + print STDERR "Usage: $0 target\n"; + exit 1; +} + +my $conn = new ZOOM::Connection($ARGV[0]); +$conn->option(preferredRecordSyntax => "xml"); +$conn->option(elementSetName => "zebra::data"); my $rs = $conn->search_pqf('@attr 1=_ALLRECORDS @attr 2=103 ""'); my $n = $rs->size(); -print STDERR "$0: found $n records in '$target'\n"; +$| = 1; +print "$0: dumping $n records\n"; +foreach my $i (1..$n) { + print "."; + print " $i/$n (", int($i*100/$n), "%)\n" if $i % 50 == 0; + my $rec = $rs->record($i-1); + my $xml = $rec->render(); + open F, ">$i.xml" or die "can't open\n"; + print F $xml; + close F; +} +print " $n/$n (100%)\n" if $n % 50 != 0;