Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/gunnar2k/elixir-map-to-xml

Converts an Elixir map to an XML document.
https://github.com/gunnar2k/elixir-map-to-xml

xml

Last synced: 7 days ago
JSON representation

Converts an Elixir map to an XML document.

Awesome Lists containing this project

README

        

# MapToXml

Converts an Elixir map to an XML document. Inspired by [XmlToMap](https://github.com/homanchou/elixir-xml-to-map).

Documentation can be found at [https://hexdocs.pm/elixir_map_to_xml](https://hexdocs.pm/elixir_map_to_xml).

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `elixir_map_to_xml` to your list of dependencies in `mix.exs`:

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

## Usage

### Basic example

```elixir
MapToXml.from_map(%{
"tag1" => "value1",
"tag2" => "value2",
"tag3" => "value3"
})
```

will output:

```xml

value1
value2
value3
```

### Nested maps

```elixir
MapToXml.from_map(%{
"tag1" => %{
"tag2" => %{
"tag3" => "value"
}
}
})
```

will output:

```xml


value

```

### Repeated child tags

```elixir
MapToXml.from_map(%{
"Tags" => %{
"Tag1" => [
%{"Sub1" => "Val1"},
%{"Sub1" => "Val2"},
%{"Sub1" => "Val3"}
]
}
})
```

will output:

```xml


Val1


Val2


Val3

```

### Attributes

```elixir
MapToXml.from_map(%{
"Tag1" => %{
"#content" => "some value",
"-id" => 123,
"-something" => "111"
}
})
```

will output:

```xml

some value
```

See [tests](test/map_to_xml_test.exs) for some more examples.