class MetsConverter::MetsParser
Attributes
document[R]
Public Class Methods
new(file)
click to toggle source
# File lib/mets_converter/mets_parser.rb, line 7 def initialize(file) @file = file @document = parse_xml end
Public Instance Methods
capture_date()
click to toggle source
# File lib/mets_converter/mets_parser.rb, line 16 def capture_date document.xpath('//xmlns:metsHdr')[0].attr('CREATEDATE') + '-06:00' end
input_file_location()
click to toggle source
# File lib/mets_converter/mets_parser.rb, line 12 def input_file_location File.dirname(@file) end
pages()
click to toggle source
# File lib/mets_converter/mets_parser.rb, line 20 def pages document.search('structMap[@TYPE="logical"]//div[@TYPE="page"]') end
Private Instance Methods
parse_xml()
click to toggle source
# File lib/mets_converter/mets_parser.rb, line 26 def parse_xml input_file = File.open(@file) begin xsd = Nokogiri::XML::Schema(File.open('xsd/mets.xsd')) doc = Nokogiri::XML(input_file, &:strict) xsd.valid?(doc) ? doc : raise('Invalid METS file') rescue Nokogiri::XML::SyntaxError => e MetsConverter.logger.error "XML error: #{e}" end end