Clojureでxmlを読み込んでみたのでメモ

Clojurexmlを読み込んでみたのでメモ。

  • core.clj
(ns xmlhello.core
  (:require [clojure.xml :as xml]))

(defn load-xml-seq
	[filepath]
	(xml-seq (xml/parse (java.io.File. filepath))))
  • data.xml(Leiningenによるプロジェクトフォルダ直下に格納)
<records>
  <record id="1">record1</record>
  <record id="2">record2</record>
</records>
  • 利用例
(use :reload 'xmlhello.core)

(let [xmlseq (load-xml-seq "data.xml")]
	(for [x xmlseq :when (= :record (:tag x))] (:content x)))
; -> (["record1"] ["record2"])