1

clojure.data.zip.xml 具有 (xml-> ...) 查找数据的功能。是否有返回位置的函数(使用类似于 (xml-> 语义),以便我可以使用该位置使用 clojure.zip 库使用 (zip/append-child ...) 将节点附加到树?

谢谢,

4

1 回答 1

1

xml-> returns a seq of zipper locs, each of which can be used with append-child:

;; using data.xml 0.0.7 and data.zip 0.1.1
(require '[clojure.zip :as zip]
         '[clojure.data.xml :as xml]
         '[clojure.data.zip.xml :as xz])

(-> (xz/xml-> (zip/xml-zip (xml/parse-str "<a><b>Foo</b><c>Bar</c></a>"))
              (xz/tag= :b))
    first
    (zip/append-child (xml/->Element :d {} "Quux"))
    zip/root
    xml/emit-str)
;= "<?xml version=\"1.0\" encoding=\"UTF-8\"?><a><b>Foo<d>Quux</d></b><c>Bar</c></a>"
于 2013-06-19T08:24:03.417 回答