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
- Le guide Elm sur JSON qui s’applique également à la mentalité XML : https://guide.elm-lang.org/interop/json.html
- Le standard XML par W3C pour une compréhension plus approfondie de XML en lui-même : https://www.w3.org/XML/