Sha256: c42aca2ece68388579f350d8caa87b50ac431ef472618f86e12881441af15534

Contents?: true

Size: 1.31 KB

Versions: 7

Compression:

Stored size: 1.31 KB

Contents

module I2X

  # = XMLSeedReader
  #
  # Load content from XML seed.
  #
  class XMLSeedReader < SeedReader
    ##
    # == Read
    #
    # => Load the seed data into the @objects array for processing.
    #
    def read
      begin
        @doc = Nokogiri::XML(open(@seed[:payload][:uri]))
        @doc.remove_namespaces!
        @doc.xpath(@seed[:payload][:query]).each do |element|
          begin
            object = @help.deep_copy @agent[:payload]
            object.each_pair do |key,value|
              variables = @help.identify_variables(object[key])
              variables.each do |v|
                element.xpath(@seed[:payload][:selectors][v]).each do |el|
                  object[key].gsub!("%{#{v}}", el.content)
                end
              end
            end

            unless @seed[:payload][:cache].nil? then
              element.xpath(@seed[:payload][:cache]).each do |el|
                object[:seed] = el.content
              end
            else
              element.xpath('id').each do |el|
                object[:seed] = el.content
              end
            end

            object[:identifier] = @agent.identifier
            @objects.push object
          rescue Exception => e
            
          end
        end
      rescue Exception => e
        
      end

      @objects
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
i2x-0.1.1 lib/i2x/xmlseedreader.rb
i2x-0.1 lib/i2x/xmlseedreader.rb
i2x-0.0.7 lib/i2x/xmlseedreader.rb
i2x-0.0.6 lib/i2x/xmlseedreader.rb
i2x-0.0.5 lib/i2x/xmlseedreader.rb
i2x-0.0.4 lib/i2x/xmlseedreader.rb
i2x-0.0.3 lib/i2x/xmlseedreader.rb