Given that 'loc is the proper location in your zipper:
(zip/edit loc assoc-in [:attrs :description] "new value")
Allen
'loc itself isn't a map even though zip/edit makes it seem that way.
Behind the scenes zip/edit calls (zip/node loc) which will return a
map, at least in the case of this xml example. zip/edit then applies
the function you provided (assoc-in) to this map plus any supplied
args. The result of this replaces the node at loc.
Allen