docs: def item_dict(self, item):
          """
          create a default dict of values, including
          category and tag lookup
          """
          # mocking wierd JSON structure
          ret_dict = {"terms":{"category":[],"post_tag":[]}}
          for e in item:
              # is it a category or tag??
              if "category" in e.tag:
                  # get details
                  slug = e.attrib["nicename"]
                  name = htmlparser.unescape(e.text)
                  # lookup the category or create one
                  cat_dict = self.category_dict.get(slug) or {"slug":slug,
                                                               "name":name,
                                                               "taxonomy":"category"}
                  ret_dict['terms']['category'].append(cat_dict)
  
              elif e.tag[-3:] == 'tag':
                  # get details
                  slug = e.attrib.get("tag_slug")
                  name = htmlparser.unescape(e.text)
                  # lookup the tag or create one
                  tag_dict = self.tags_dict.get(slug) or {"slug":slug,
                                                          "name":name,
                                                          "taxonomy":"post_tag"}
  
                  ret_dict['terms']['post_tag'].append(tag_dict)
              # else use tagname:tag inner test
              else:
                  ret_dict[e.tag] = e.text
              # remove empty accumulators
          empty_keys = [k for k,v in ret_dict["terms"].items() if not v]
          for k in empty_keys:
              ret_dict["terms"].pop(k)
          return ret_dict