def _parse_category_tree(self, els, parent_category_id, parent_category_name): categories = [] for el in els: if el.nodeType == el.ELEMENT_NODE: cat = Category(self) cat.category_id = int(self._get_child_node_text(el, "category_id")) cat.category_name = self._get_child_node_text(el, "category_name") cat.level = int(self._get_child_node_text(el, "level")) cat.parent_category_id = parent_category_id cat.parent_category_name = parent_category_name subcat_el = self._get_child_element(el, "subcategories") if (subcat_el): cat.subcategories = self._parse_category_tree(subcat_el.childNodes, cat.category_id, cat.category_name) categories.append(cat) return categories