Clojure:
XML:n käsittely

Kuinka:

Clojure tarjoaa clojure.data.xml kirjaston XML:n jäsentämiseen ja tuottamiseen. Aloitetaan XML:n jäsentämisestä:

(require '[clojure.data.xml :as xml])

(let [content "<root><foo>bar</foo><foo>baz</foo></root>"
      parsed (xml/parse-str content)] ; Jäsennä XML-merkkijono
  (println parsed))

Tuloste:

Element{:tag :root, :attrs {}, :content (Element{:tag :foo, :attrs {}, :content ("bar")} Element{:tag :foo, :attrs {}, :content ("baz")})}

XML:n tuottamiseksi Clojure-rakenteista:

(def my-xml (xml/element :root {}
                          (xml/element :foo {} "bar")
                          (xml/element :foo {} "baz")))

(println (xml/emit-str my-xml))

Tuloste:

<root><foo>bar</foo><foo>baz</foo></root>

Syväsukellus

XML on ollut olemassa jo kauan, alkaen 90-luvun lopulla yksinkertaistettuna SGML:n alajoukkona web-datan käyttöön. Sen käyttö räjähti teknologioiden kuten SOAP:n ja XHTML:n myötä, mutta sai kilpailua JSON:sta, jota suositaan sen keveyden ja yksinkertaisuuden vuoksi.

Clojuren lähestymistapa XML:ään pitää sen funktionaalisena ja datakeskeisenä, pysyen uskollisena kielen eetokselle. clojure.data.xml on vain yksi vaihtoehto; perustarpeisiin sopii clojure.xml, ja Java-yhteensopivuuteen voit turvautua raskassarjalaisiin kuten JAXB tai DOM4J.

Pidä mielessä, että erittäin suurten XML-dokumenttien käsittelyn suorituskyky- ja muistivaatimukset voivat olla raskaat. Streaming-jäsentäjät kuten StAX voivat auttaa, mutta niiden käyttöön joudut siirtymään Java-maailmaan.

Katso Myös