Class: Xlsxrb::Ooxml::SharedStringsParser
- Inherits:
-
Object
- Object
- Xlsxrb::Ooxml::SharedStringsParser
- Defined in:
- lib/xlsxrb/ooxml/shared_strings_parser.rb,
sig/xlsxrb.rbs
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
-
.each_event(xml_string, part_name: "xl/sharedStrings.xml", &block) ⇒ Object
Yields Event objects for each shared string.
-
.parse(xml_string, part_name: "xl/sharedStrings.xml") ⇒ Object
Parses all shared strings and returns an Array of strings.
Class Method Details
.each_event(arg0, part_name:) ⇒ void .each_event(arg0, part_name:) ⇒ Enumerator[Event, void]
Yields Event objects for each shared string.
22 23 24 25 26 27 28 |
# File 'lib/xlsxrb/ooxml/shared_strings_parser.rb', line 22 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.
11 12 13 14 15 16 17 18 19 |
# File 'lib/xlsxrb/ooxml/shared_strings_parser.rb', line 11 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 |