有幾點心得:
1> 確實簡練:
(ns work (:require
[clojure.xml :as xml]
[clojure.zip :as zip]
[clojure.data.zip.xml :as zf] )
)
(defn parse-xml-file
"parse xml to zipper map"
[xml-file]
(zip/xml-zip (xml/parse xml-file))
)
(defn get-value [xml & tags]
(apply zf/xml->
xml
(conj (vec tags) zf/text))
)
(def xml-var (parse-xml-file "test.xml"))
;to get 'a/b'
(get-value xml-var :a :b)
2> 如果a是根節點那麼檢索不到。這是爲什麼?待解答。
3> apply 的用法,要在詳細研究。
4> vec 與vector 是不同的函數
(vec '(1 2 3));return [1 2 3]
(vector '(1 2 3));return [(1 2 3)]
這一點,要仔細研究。