Xml 非空列表?它会一直是一个列表吗?试图想出区分树叶和树枝的最佳方法。现在想想,这可能正是tree-seq的工作。 {:tag :eSearchResult, :attrs {}, :content ({:tag :Count, :attrs {}, :
非空列表?它会一直是一个列表吗?试图想出区分树叶和树枝的最佳方法。现在想想,这可能正是Xml 非空列表?它会一直是一个列表吗?试图想出区分树叶和树枝的最佳方法。现在想想,这可能正是tree-seq的工作。 {:tag :eSearchResult, :attrs {}, :content ({:tag :Count, :attrs {}, :,xml,clojure,Xml,Clojure,非空列表?它会一直是一个列表吗?试图想出区分树叶和树枝的最佳方法。现在想想,这可能正是tree-seq的工作。 {:tag :eSearchResult, :attrs {}, :content ({:tag :Count, :attrs {}, :content ("16")} {:tag :RetMax, :attrs {}, :content ("16")} {:tag :RetStart, :attrs {}, :content ("0")} {:tag :IdList
tree-seq
的工作。
{:tag :eSearchResult,
:attrs {},
:content
({:tag :Count, :attrs {}, :content ("16")}
{:tag :RetMax, :attrs {}, :content ("16")}
{:tag :RetStart, :attrs {}, :content ("0")}
{:tag :IdList,
:attrs {},
:content
({:tag :Id, :attrs {}, :content ("28911150")}
{:tag :Id, :attrs {}, :content ("28899394")}
{:tag :Id, :attrs {}, :content ("28597238")}
{:tag :Id, :attrs {}, :content ("28263281")}
{:tag :Id, :attrs {}, :content ("28125459")}
{:tag :Id, :attrs {}, :content ("26911135")}
{:tag :Id, :attrs {}, :content ("26699345")}
{:tag :Id, :attrs {}, :content ("26297102")}
{:tag :Id, :attrs {}, :content ("26004019")}
{:tag :Id, :attrs {}, :content ("25995331")}
{:tag :Id, :attrs {}, :content ("25429093")}
{:tag :Id, :attrs {}, :content ("25355095")}
{:tag :Id, :attrs {}, :content ("25224593")}
{:tag :Id, :attrs {}, :content ("24816246")}
{:tag :Id, :attrs {}, :content ("24779721")}
{:tag :Id, :attrs {}, :content ("24740865")})}
(dotest
(with-forest (new-forest)
(let [root-hid (add-tree-enlive
{:tag :eSearchResult,
:attrs {},
:content [
{:tag :Count, :attrs {}, :content ["16"]}
{:tag :RetMax, :attrs {}, :content ["16"]}
{:tag :RetStart, :attrs {}, :content ["0"]}
{:tag :IdList,
:attrs {},
:content [
{:tag :Id, :attrs {}, :content ["28911150"]}
{:tag :Id, :attrs {}, :content ["28899394"]}
{:tag :Id, :attrs {}, :content ["28597238"]}
{:tag :Id, :attrs {}, :content ["28263281"]}
{:tag :Id, :attrs {}, :content ["28125459"]}
{:tag :Id, :attrs {}, :content ["26911135"]}
{:tag :Id, :attrs {}, :content ["26699345"]}
{:tag :Id, :attrs {}, :content ["26297102"]}
{:tag :Id, :attrs {}, :content ["26004019"]}
{:tag :Id, :attrs {}, :content ["25995331"]}
{:tag :Id, :attrs {}, :content ["25429093"]}
{:tag :Id, :attrs {}, :content ["25355095"]}
{:tag :Id, :attrs {}, :content ["25224593"]}
{:tag :Id, :attrs {}, :content ["24816246"]}
{:tag :Id, :attrs {}, :content ["24779721"]}
{:tag :Id, :attrs {}, :content ["24740865"]} ]}]})
id-content-paths (find-paths root-hid [:eSearchResult :IdList :Id])
id-strings (forv [path id-content-paths]
(grab :value (hid->leaf (last path))))]
(is= (hid->bush root-hid)
[{:tag :eSearchResult}
[{:tag :Count, :value "16"}]
[{:tag :RetMax, :value "16"}]
[{:tag :RetStart, :value "0"}]
[{:tag :IdList}
[{:tag :Id, :value "28911150"}]
[{:tag :Id, :value "28899394"}]
[{:tag :Id, :value "28597238"}]
[{:tag :Id, :value "28263281"}]
[{:tag :Id, :value "28125459"}]
[{:tag :Id, :value "26911135"}]
[{:tag :Id, :value "26699345"}]
[{:tag :Id, :value "26297102"}]
[{:tag :Id, :value "26004019"}]
[{:tag :Id, :value "25995331"}]
[{:tag :Id, :value "25429093"}]
[{:tag :Id, :value "25355095"}]
[{:tag :Id, :value "25224593"}]
[{:tag :Id, :value "24816246"}]
[{:tag :Id, :value "24779721"}]
[{:tag :Id, :value "24740865"}]]])
(is= id-strings
["28911150"
"28899394"
"28597238"
"28263281"
"28125459"
"26911135"
"26699345"
"26297102"
"26004019"
"25995331"
"25429093"
"25355095"
"25224593"
"24816246"
"24779721"
"24740865"])
)))