ffi-expat

ffi-expat provides a very thin wrapper around expat using the Ruby FFI library.


License
MIT
Install
gem install ffi-expat -v 0.1.0

Documentation

ffi-expat

ffi-expat is a Ruby FFI wrapper for the expat XML parsing library.

Installation

[sudo] gem install ffi-zlib

SAMPLE USAGE

ffi-expat is a thin wrapper around the expat calls so using ffi-expat in Ruby is similar to the way you would use expat in C (modulo the obious language specifics).

Here's a simple example which counts the number of each start tags:

require "rubygems"
require "ffi/expat"

class Handler
	attr_reader :starts
    def initialize
        @starts = Hash.new
    end
    def start_elem(parser, tag, attrs)
        if @starts.has_key?(tag)
            @starts[tag] += 1
        else
            @starts[tag] = 1
        end
    end
end

xml = File.read("test.xml")
handler = Handler.new
parser = FFI::Expat.XML_ParserCreate(nil)
FFI::Expat.XML_SetStartElementHandler(parser, handler.method(:start_elem))
FFI::Expat.XML_Parse(parser, xml, xml.length, true)
FFI::Expat.XML_ParserFree(parser)

handler.starts.each do |tag, count|
	puts "#{tag}: #{count}"
end

AUTHORS

Luc Heinrich luc@honk-honk.com

LICENSE

MIT.