评论者:bpeter
我发现了一个“解决方法”,如以下所示,并在(链接:^zip-xml-bug-descent.tgz)中
`
(defn descent=
[tagname]
(fn [loc]
(filter #(and (zip/branch? %) (= tagname (:tag (zip/node %))))
(testing "using descent to select the name of the inner"
(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}}谓词?