Class: RelatonBib::XMLParser

Inherits:
Object
  • Object
show all
Defined in:
lib/relaton_bib/xml_parser.rb

Class Method Summary collapse

Class Method Details

.from_xml(xml) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/relaton_bib/xml_parser.rb', line 6

def from_xml(xml)
  doc = Nokogiri::XML(xml)
  bibitem = doc.at "/bibitem"
  BibliographicItem.new( 
    id:             bibitem[:id],
    type:           bibitem[:type],
    fetched:        bibitem.at("./fetched")&.text,
    titles:         fetch_titles(bibitem),
    link:           fetch_link(bibitem),
    docid:          fetch_docid(bibitem),
    docnumber:      bibitem.at("./docnumber")&.text,
    dates:          fetch_dates(bibitem),
    contributors:   fetch_contributors(bibitem),
    edition:        bibitem.at("./edition")&.text,
    version:        fetch_version(bibitem),
    biblionote:     fetch_note(bibitem),
    language:       bibitem.xpath("./language").map(&:text),
    script:         bibitem.xpath("./script").map(&:text),
    abstract:       fetch_abstract(bibitem),
    docstatus:      fetch_status(bibitem),
    copyright:      fetch_copyright(bibitem),
    relations:      fetch_relations(bibitem),
    series:         fetch_series(bibitem),
    medium:         fetch_medium(bibitem),
    place:          bibitem.xpath("./place").map(&:text),
    extent:         fetch_extent(bibitem),
    accesslocation: bibitem.xpath("./accesslocation").map(&:text),
    classification: fetch_classification(bibitem),
    validity:       fetch_validity(bibitem),
  )
end