Example #1
0
    def printXML(self):

        for entry in self.json_list:

            exampleXML = {'item': entry}
            xml = dict2xml(exampleXML)

            print xml.display()
Example #2
0
    def printXML(self):

        for entry in self.json_list:

            exampleXML = {'item': entry}
            xml = dict2xml(exampleXML)

            print xml.display()
Example #3
0
    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)
Example #4
0
    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)