使用data.zip解析xml时访问所有属性

时间:2015-07-06 22:45:36

标签: xml clojure

我成功使用Clojure data.zip库来导航xml并提取我想要的值,但是如果我能一次提取所有元素的属性会很方便。我目前无法使用attr函数逐个提取它们。例如:

(xml1-> article :meta (xml/attr :attr1))

然后再次:attr2然后:attr3,依此类推。什么会是伟大的将是这样的:

(xml1-> article :meta :attrs)

返回可用属性的地图。

1 个答案:

答案 0 :(得分:2)

xml1->会返回拉链locnil,因此您可以创建自己的函数来返回所有属性:

(require '[clojure.zip :as zip])
(defn attrs [loc]
  (when (zip/branch? loc) (-> loc zip/node :attrs)))

这几乎与attr函数here完全相同。