Skip to content

Latest commit

 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MapToXml

Converts an Elixir map to an XML document. Inspired by XmlToMap.

Documentation can be found at https://hexdocs.pm/elixir_map_to_xml.

Installation

If available in Hex, the package can be installed by adding elixir_map_to_xml to your list of dependencies in mix.exs:

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

Usage

Basic example

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

will output:

<?xml version="1.0" encoding="UTF-8"?>
<tag1>value1</tag1>
<tag2>value2</tag2>
<tag3>value3</tag3>

Nested maps

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

will output:

<?xml version="1.0" encoding="UTF-8"?>
<tag1>
  <tag2>
    <tag3>value</tag3>
  </tag2>
</tag1>

Repeated child tags

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

will output:

<?xml version="1.0" encoding="UTF-8"?>
<Tags>
  <Tag1>
    <Sub1>Val1</Sub1>
  </Tag1>
  <Tag1>
    <Sub1>Val2</Sub1>
  </Tag1>
  <Tag1>
    <Sub1>Val3</Sub1>
  </Tag1>
</Tags>

Attributes

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

will output:

<?xml version="1.0" encoding="UTF-8"?>
<Tag1 id="123" something="111">some value</Tag1>

See tests for some more examples.

About

Converts an Elixir map to an XML document.

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages