Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/eeue56/elm-xml

xml parser for elm
https://github.com/eeue56/elm-xml

elm elm-xml xml-parser

Last synced: about 1 month ago
JSON representation

xml parser for elm

Awesome Lists containing this project

README

        

# elm-xml [![Build Status](https://travis-ci.org/eeue56/elm-xml.svg?branch=master)](https://travis-ci.org/eeue56/elm-xml)
xml parser for elm

First bring XML into Elm as a `Value`. Once imported as a Value, you can then either query the values with `Xml.Query`.

Or you can turn it back to a string using `Xml.Encode.encode`. Or pull it apart using `Xml.Encode.Value`.

In order to turn an `Xml.Value` into a record, you probably want `Xml.Query`, paired with `Result.map`.

```elm

import Xml exposing (Value)
import Xml.Encode exposing (null)
import Xml.Decode exposing (decode)
import Xml.Query exposing (tags)

decodedXml : Value
decodedXml =
"""

noah
50

josh
57

"""
|> decode
|> Result.toMaybe
|> Maybe.withDefault null

type alias Person =
{ name: String
, age: Int
}

person : Value -> Result String Person
person value =
Result.map2
(\name age ->
{ name = name
, age = age
}
)
(tag "name" string value)
(tag "age" int value)

people : List Person
people =
tags "person" decodedXml
|> collect person

```