clojure parse xml

今天玩了下clojure, 试着解析xml。
有几点心得:

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)]

这一点,要仔细研究。

你可能感兴趣的:(clojure)