Elm:
Travailler avec XML

Comment faire :

En Elm, vous gérez XML en utilisant le package elm/xml. Voici un aperçu rapide de l’analyse d’un extrait XML :

import Xml.Decode exposant (..)
import Xml.Decode.Pipeline exposant (..)

xmlString = """
<book id="123">
    <title>Elm in Action</title>
    <author>Robin Heggelund Hansen</author>
</book>
"""

type alias Book =
    { id : String
    , title : String
    , author : String
    }

bookDecoder : Decoder Book
bookDecoder =
    decode Book
        |> requis "id" (attribut "id")
        |> requis "title" (enfant "title" (contenu texte))
        |> requis "author" (enfant "author" (contenu texte))

case Xml.Decode.fromString bookDecoder xmlString of
    Ok book ->
        -- Faites quelque chose avec le livre décodé ici
        Debug.toString book

    Err error ->
        -- Gérer les erreurs
        Debug.toString error

Exemple de sortie, en supposant aucune erreur :

"{ id = \"123\", title = \"Elm in Action\", author = \"Robin Heggelund Hansen\" }"

Plongée en profondeur

XML (eXtensible Markup Language) existe depuis la fin des années 90, une époque où le web était lourd de texte et le besoin d’un moyen structuré, mais flexible de transporter des données était crucial. En raison de sa verbosité et de sa complexité, XML a perdu du terrain au profit du JSON. Cependant, XML est toujours prévalent, surtout dans les environnements d’entreprise ou les protocoles comme SOAP.

L’approche d’Elm vis-à-vis de XML est fonctionnelle et sûre en termes de type. Utiliser le package elm/xml signifie embrasser la philosophie Elm d’explicité et de fiabilité. En ce qui concerne l’analyse, le package fournit une gamme de décodeurs que vous composez pour gérer la structure XML.

Comparée aux alternatives comme le DOMParser de JavaScript ou ElementTree de Python, la méthode d’Elm peut sembler plus verbosité mais assure la sécurité. Pas d’exceptions d’exécution pour les champs manquants ou les inadéquations de type ; si quelque chose est incorrect, vous obtenez une erreur de compilation.

Les fonctions de décodage elm/xml reposent sur la cartographie des nœuds XML aux types Elm. Vous construisez des décodeurs qui reflètent la forme de vos données, assurant ainsi que votre application Elm gère XML aussi rigoureusement qu’elle gère ses propres structures de données internes.

La génération de XML est moins courante en Elm mais peut être réalisée avec le contrepartie Xml.Encode de elm/xml.

Voir Aussi