module RDF::TriX::Reader::Nokogiri

Nokogiri implementation of the TriX reader.

@see nokogiri.org/

Constants

OPTIONS

Public Class Methods

library() click to toggle source

Returns the name of the underlying XML library.

@return [Symbol]

# File lib/rdf/trix/reader/nokogiri.rb, line 14
def self.library
  :nokogiri
end

Public Instance Methods

initialize_xml(input, **options) click to toggle source

Initializes the underlying XML library.

@param [Hash{Symbol => Object}] options @return [void]

# File lib/rdf/trix/reader/nokogiri.rb, line 23
def initialize_xml(input, **options)
  require 'nokogiri' unless defined?(::Nokogiri)
  @xml = ::Nokogiri::XML(input)
  log_error("Errors: #{@xml.errors.join('\n')}") unless @xml.errors.empty?
  @xml
end

Protected Instance Methods

element_content(element) click to toggle source

@private

# File lib/rdf/trix/reader/nokogiri.rb, line 66
def element_content(element)
  element.content
end
element_elements(element) click to toggle source

@private

# File lib/rdf/trix/reader/nokogiri.rb, line 60
def element_elements(element)
  element.children.select { |node| node.element? }
end
find_graphs(&block) click to toggle source

@private

# File lib/rdf/trix/reader/nokogiri.rb, line 34
def find_graphs(&block)
  @xml.xpath('//trix:graph', OPTIONS).each(&block)
end
read_base() click to toggle source

@private

# File lib/rdf/trix/reader/nokogiri.rb, line 40
def read_base
  base = @xml.root.attribute_with_ns("base", "http://www.w3.org/XML/1998/namespace") if @xml && @xml.root
  RDF::URI(base.to_s) if base
end
read_graph(graph_element) click to toggle source

@private

# File lib/rdf/trix/reader/nokogiri.rb, line 47
def read_graph(graph_element)
  name = graph_element.children.select { |node| node.element? && node.name.to_s == 'uri' }.first.content.strip rescue nil
  name ? RDF::URI.intern(name) : nil
end
triple_elements(element) click to toggle source

@private

# File lib/rdf/trix/reader/nokogiri.rb, line 54
def triple_elements(element)
  element.xpath('./trix:triple', OPTIONS)
end