Clojureでxmlを読み込んで、zip-filterで検索
日記「Clojureでxmlを読み込んでみたのでメモ - oknknicの日記」では xml-seq と for による xml 検索をした。
今回は、 zip と zip-filter による検索をメモ。
利用例
- project.clj の :dependencies への追記
[org.clojure/data.zip "0.1.0"]
- サンプルファイル(in.xml)
<root> <records> <record id="1">record01</record> <record id="2">record02</record> </records> <record id="3">record03</record> </root>
- 実行例
(use 'clojure.data.zip.xml) (require ['clojure.xml :as 'xml]) (require ['clojure.zip :as 'zip]) (xml-> (zip/xml-zip (xml/parse "in.xml")) :records :record text) ; -> ("record01" "record02") (xml-> (zip/xml-zip (xml/parse "in.xml")) :record text) ; -> ("record03") (xml-> (zip/xml-zip (xml/parse "in.xml")) :record (attr :id)) ; -> ("3")