# Saxy
An native, fast Elixir XML SAX parser
## Installation
```elixir
def deps do
[
{:saxy, "~> 0.1.0"}
]
end
```
## Usage
First define your SAX event handler
```elixir
defmodule MyEventHandler do
@behaviour Saxy.EventHandler
def start_document(state) do
IO.puts "Start parsing document"
state
end
def start_element({name, attribute}, state) do
IO.puts "Start #{name} element"
state
end
def characters(string, state) do
IO.puts "Characters #{string}"
state
end
def end_element({name}, state) do
IO.puts "End #{name} element"
state
end
def end_document(state) do
IO.puts "Finish parsing document"
state
end
end
```
Then go parsing!
```
xml = """
<?xml version="1.0" ?>
<foo><bar>Hello World!</bar></foo>
"""
init_state = 0
Saxy.parse(xml, init_state, MyEventHandler)
#=> Start parsing document
#=> Start foo element
#=> Start bar element
#=> Characters "Hello World!"
#=> End bar element
#=> End foo element
#=> Finish parsing document
```