def printXML(self): for entry in self.json_list: exampleXML = {'item': entry} xml = dict2xml(exampleXML) print xml.display()
def __init__(self, json_list, headers): self.json_list = json_list self.headers = headers # Printing in table format was grouping by name. # Tsis was eliminating rows with duplicate names. Now, # since ID is unique for every record, all rows are displayed self.headers.insert(0, 'id') self.width = [] self.json_list = [] self.rows = [] for index in range(len(self.headers)): self.width.append(0) self.updateWidth(self.headers) for entry in json_list: exampleXML = {'module': entry} xml = dict2xml(exampleXML) yXML = parseString(xml.display()) row = [] tmp_str = "" for module in yXML.getElementsByTagName('module'): for header in headers: (pname, header) = get_parent_child_from_xpath(header) tmp_str = "" if (len(module.getElementsByTagName(header)) == 1): for item in module.getElementsByTagName(header): if item.firstChild.nodeValue.strip() != "": if (item and item.firstChild and item.firstChild.nodeValue): row.append(item.firstChild.nodeValue) else: row.append("") elif item.nodeName == "attributes": tmp_str = tmp_str + self.getAttributesKeyValuePairs( item) tmp_str = tmp_str[0:len(tmp_str) - 1] row.append(tmp_str) else: row.append("") elif (len(module.getElementsByTagName(header)) > 1): for item in module.getElementsByTagName(header): if (pname): if (pname == item.parentNode.nodeName): tmp_str = tmp_str + \ item.firstChild.nodeValue.strip() + "," else: if item.firstChild.nodeValue.strip() != "": tmp_str = tmp_str + \ item.firstChild.nodeValue.strip() + "," elif item.nodeName == "attributes": tmp_str = tmp_str + self.getAttributesKeyValuePairs( item) tmp_str = tmp_str[0:len(tmp_str) - 1] row.append(tmp_str) elif (len(module.getElementsByTagName(header)) == 0): row.append("") self.updateWidth(row) self.rows.append(row)
def __init__(self, json_list, headers): self.json_list = json_list self.headers = headers # Printing in table format was grouping by name. # Tsis was eliminating rows with duplicate names. Now, # since ID is unique for every record, all rows are displayed self.headers.insert(0, 'id') self.width = [] self.json_list = [] self.rows = [] for index in range(len(self.headers)): self.width.append(0) self.updateWidth(self.headers) for entry in json_list: exampleXML = {'module': entry} xml = dict2xml(exampleXML) yXML = parseString(xml.display()) row = [] tmp_str = "" for module in yXML.getElementsByTagName('module'): for header in headers: (pname, header) = get_parent_child_from_xpath(header) tmp_str = "" if(len(module.getElementsByTagName(header)) == 1): for item in module.getElementsByTagName(header): if item.firstChild.nodeValue.strip() != "": if(item and item.firstChild and item.firstChild.nodeValue): row.append(item.firstChild.nodeValue) else: row.append("") elif item.nodeName == "attributes": tmp_str = tmp_str + self.getAttributesKeyValuePairs(item) tmp_str = tmp_str[0:len(tmp_str) - 1] row.append(tmp_str) else: row.append("") elif(len(module.getElementsByTagName(header)) > 1): for item in module.getElementsByTagName(header): if(pname): if(pname == item.parentNode.nodeName): tmp_str = tmp_str + \ item.firstChild.nodeValue.strip() + "," else: if item.firstChild.nodeValue.strip() != "": tmp_str = tmp_str + \ item.firstChild.nodeValue.strip() + "," elif item.nodeName == "attributes": tmp_str = tmp_str + self.getAttributesKeyValuePairs(item) tmp_str = tmp_str[0:len(tmp_str) - 1] row.append(tmp_str) elif(len(module.getElementsByTagName(header)) == 0): row.append("") self.updateWidth(row) self.rows.append(row)