def push_data(self, key, data): if self.item is None: self.item = OrderedDict() try: value = self.item[key] if isinstance(value, list): value.append(data) else: self.item[key] = [value, yaml_eval(data)] except KeyError: self.item[key] = yaml_eval(data)
def startElement(self, name, attrs): self.path.append((name, attrs or None)) if len(self.path) > self.item_depth: self.stack.append((self.item, self.data)) attrs = OrderedDict((self.attr_prefix + key, yaml_eval(value)) for (key, value) in attrs.items()) self.item = self.xml_attribs and attrs or None self.data = None