Skip to content

Audian/elixir-map-to-xml

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Elixir 100.0%