Haskell:
XML:n käsittely

Kuinka:

Haskell tarjoaa kirjastoja kuten xml-conduit XML:n käsittelyyn. Seuraava esimerkki demonstroi XML-merkkijonon jäsentämisen ja elementtien kyselyn:

{-# LANGUAGE OverloadedStrings #-}

import qualified Data.Text as T
import Text.XML
import Text.XML.Cursor

main :: IO ()
main = do
  let xmlContent = "<greetings><hello>World!</hello></greetings>"
  let document = parseLBS_ def $ T.encodeUtf8 $ T.pack xmlContent
  let cursor = fromDocument document

  let helloTexts = cursor $// element "hello" &/ content
  print helloTexts  -- ['World!']

Esimerkkituloste:

["World!"]

Syväsukellus

XML, lyhenne sanoista eXtensible Markup Language, on ollut tietojen sarjallistamisen kulmakivi kauan ennen JSONin nousua. Se on verbosinen, mutta jäykkä ja standardoitu, mikä tekee siitä sopivan tiukkoihin yritysympäristöihin, legacy-järjestelmiin ja teollisuudenaloihin kuten rahoitus ja terveydenhuolto.

Haskellissa on useita XML-kirjastoja; kuitenkin xml-conduit on yksi tehokkaimmista ja laajalti käytetyistä sen tehokkaan suoratoiston ja jäsentämiskyvyn vuoksi, osana conduit perhettä datavirtojen käsittelyyn.

Vaihtoehtoihin kuuluu HXT (Haskell XML Toolbox), joka käyttää nuolia jäsentämiseen ja muunnoksiin, tarjoten erilaisen paradigman XML-manipulaatioihin. Vaikka HXT on nykyään vähemmän suosittu sen jyrkemmän oppimiskäyrän vuoksi, se pysyy silti vankkana valintana joissakin käyttötapauksissa.

Toteuttaessasi XML-käsittelyä Haskellissa, sinun tulee huolehtia merkistökoodauksesta, koska Haskellin merkkijonot ovat Unicodea ja XML-data ei välttämättä ole. Lisäksi, XML-nimiavaruudet voivat lisätä ylimääräistä monimutkaisuutta jäsentämiseen.

Katso myös: