README.md

# Xmlixer
A simple wrapper around erlang's xmerl to generate XML in elixir.

## Installation

The package can be installed as:

  1. Add `xmlixer` to your list of dependencies in `mix.exs`:

    ```elixir
    def deps do
      [{:xmlixer, "~> 0.1.0"}]
    end
    ```

  2. Ensure `xmlixer` is started before your application:

    ```elixir
    def application do
      [applications: [:xmlixer]]
    end
    ```

### XML node is a tuple
```elixir
{Tag, %{Attribute}, [content]}
```
Tag can be a string or an atom.   
Attributes are Elixir Maps.   
Content can be a string, tuple (XML node) or a List tuples.   

## Usage
```elixir
  
```

## Example
```elixir
iex> import Xmlixer

#main xml
iex> fruits = create_node("fruits")
{:fruits, [], []}

#inner node
iex> apple = create_node("apple") |> add_attributes(
              %{color: "red", seeded: :true}
            ) |> add_content("give it to the doctor.")
{:apple, [color: "red", seeded: true], [["give it to the doctor."]]}

iex> fruits |> add_content(apple) |> serialize 
'<?xml version="1.0"?><fruits><apple color="red" seeded="true">give it to the doctor.</apple></fruits>'

#adding xml declaration
iex> prolog = ~s(<?xml version="1.0" encoding="UTF-8"?>)
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>"

iex> fruits |> add_content(apple) |> serialize(prolog)
'<?xml version="1.0" encoding="UTF-8"?><fruits><apple color="red" seeded="true">give it to the doctor.</apple></fruits>'
```