Class: Xlsxrb::Ooxml::SharedStringsParser

Inherits:
Object
  • Object
show all
Defined in:
lib/xlsxrb/ooxml/shared_strings_parser.rb

Overview

SAX-based parser for xl/sharedStrings.xml. Returns an Array of strings (index = SST index).

Defined Under Namespace

Classes: EventListener

Class Method Summary collapse

Class Method Details

.each_event(xml_string, part_name: "xl/sharedStrings.xml", &block) ⇒ Object

Yields Event objects for each shared string.



24
25
26
27
28
29
30
# File 'lib/xlsxrb/ooxml/shared_strings_parser.rb', line 24

def self.each_event(xml_string, part_name: "xl/sharedStrings.xml", &block)
  return enum_for(:each_event, xml_string, part_name: part_name) unless block
  return if xml_string.nil? || xml_string.empty?

  listener = EventListener.new(part_name, &block)
  XmlParser.parse(xml_string, listener)
end

.parse(xml_string, part_name: "xl/sharedStrings.xml") ⇒ Object

Parses all shared strings and returns an Array of strings.



13
14
15
16
17
18
19
20
21
# File 'lib/xlsxrb/ooxml/shared_strings_parser.rb', line 13

def self.parse(xml_string, part_name: "xl/sharedStrings.xml")
  return [] if xml_string.nil? || xml_string.empty?

  strings = []
  each_event(xml_string, part_name: part_name) do |event|
    strings << event.args[0] if event.type == :sst_item
  end
  strings
end