Module: Solrizer::XML::Extractor

Defined in:
lib/solrizer/xml/extractor.rb

Instance Method Summary collapse

Instance Method Details

#extract_tag(doc, type) ⇒ Object



13
14
15
16
17
# File 'lib/solrizer/xml/extractor.rb', line 13

def extract_tag(doc, type)
  tags = doc.elements["/fields/#{type}"]
  return {} unless tags
  {type => tags.text.split(/,/).map {|t| t.strip}}
end

#extract_tags(text) ⇒ Object



8
9
10
11
# File 'lib/solrizer/xml/extractor.rb', line 8

def extract_tags(text)
  doc = REXML::Document.new( text )
  extract_tag(doc, 'archivist_tags').merge(extract_tag(doc, 'donor_tags'))
end

#xml_to_solr(text, solr_doc = Solr::Document.new) ⇒ Object

This method extracts solr fields from simple xml



22
23
24
25
26
27
28
29
# File 'lib/solrizer/xml/extractor.rb', line 22

def xml_to_solr( text, solr_doc=Solr::Document.new )
  doc = REXML::Document.new( text )
  doc.root.elements.each do |element|
    solr_doc << Solr::Field.new( :"#{element.name}_t" => "#{element.text}" )
  end

  return solr_doc
end