blob: 124271cfff63d06bc642e8124b9aff1f9c1de41a [file] [log] [blame]
!#/usr/bin/perl
#---------------------------------------------------------
# This script extracts some data from an OOo bibliographic
# entry. Its command line must contain 2 arguments: the
# file name and the identifier of the biblio entry.
# Note: It's not a real world situation; one should not
# instantiate a document object just for retrieving only
# one element; ooDocument() loads and parses the full
# document, and it's the most costly operation.
use OpenOffice::OODoc;
my ($filename, $identifier) = @ARGV;
                # get a document connector
my $doc = ooDocument(file => $filename)
        or die "Unknown or non-valid OOo file\n";
                # query for the needed biblio field
my $bib = $doc->selectElementByAttribute
                (
                '//text:bibliography-mark',
                'text:identifier',
                $identifier
                )
        or die "Unknown reference\n";
                # extract the properties
my $author = $doc->getAttribute($bib, "text:author");
my $title = $doc->getAttribute($bib, "text:title");
my $publiher = $doc->getAttribute($bib, "text:publisher");
my $year = $doc->getAttribute($bib, "text:year");
my $isbn = $doc->getAttribute($bib, "text:isbn");
                # create the report
print   "Author:    $author\n"          .
        "Title:     $title\n"           .
        "Publisher: $publisher\n"       .
        "Year:      $year\n"            .
        "ISBN:      $isbn\n";
                # that's all
exit;
#---------------------------------------------------------