由 bpeter 发布的评论
如您所看到,我发现了一个 "解决方案" 并且在 (链接:^zip-xml-bug-descent.tgz) 中
`
(defn descent=
[tagname]
(fn [loc]
(filter #(and (zip/branch? %) (= tagname (:tag (zip/node %))))
(testing "selecting the name of inner using descent"
(is (= "Inner"
(-> (zip-xml/xml1-> root :Root :Group (descent= :Group) :Name zip-xml/text)))))
`
看上去在 {{tag=}} 匹配元素本身的问题出现在 (or) 表达式的第一表达式。我认为它可以用来选择根元素。还有其他需要它的情况吗?
`
(defn tag=
[tagname]
(fn [loc]
(or (= tagname (:tag (zip/node loc)))
(filter #(and (zip/branch? %) (= tagname (:tag (zip/node %))))
(zf/children-auto loc)))))
`
也许应该有一个 {{self}} 断言?