1
我想使用來自Clojure的BaseX的內部數據類型來構建一個XML結構。clojure:for循環內容未被調用
(defn basex-elem [token-name dict]
(let [elem (org.basex.query.item.FElem.
(org.basex.query.item.QNm. token-name))]
(for [[k v] dict]
(do
(println "THIS IS REACHED")
(let [k-name (org.basex.query.item.QNm. (.getName k))
k-attr (org.basex.query.item.FAttr.
k-name
org.basex.util.Token/token v))]
(.add elem k-attr))))
elem))
當使用這種哭創建元素,「這是達到」從不打印:
(def test-elem (basex-elem "element-name" {:key1 "value1", :key2 "value2"}))
; => #'user/test-elem
,因此值回來而沒有任何屬性:
test-elem
; => #<FElem <element-name/>>
但添加屬性的工作,否則。
(.add test-elem
(org.basex.query.item.FAttr.
(org.basex.query.item.QNm. "foo")
(org.basex.util.Token/token "bar")))
; => #<FElem <element-name foo="bar"/>>
因此,大概我正在做循環的問題。任何指針?
「產生一個懶惰的序列」...在那裏的文檔(http://clojuredocs.org/clojure_core/clojure.core/for),我沒有看到它。謝謝! – 2012-04-12 23:44:23