def METHOD_NAME(self):
    if not self.report_tree:
        return
    for tablerow in self.report_tree:
        for i, tablecell in enumerate(tablerow.findall('tablecell')):
            if len(tablecell.findall('item')) == 1:
                if i == 0:  # Item
                    vuln = VulnerabilityNipper()
                    vuln.name = tablecell.find('item').text
                elif i == 1:  # Rating
                    vuln.rating = tablecell.find('item').text
                elif i == 2:  # Recommendations
                    vuln.recommendation = tablecell.find('item').text
                elif i == 3:  # Affected devices (with 1 element only)
                    vuln.affected_devices = []
                    vuln.affected_devices.append(tablecell.find('item').text)
                elif i == 4:  # Section
                    subdetail = tablecell.find('item').text
                    vuln.section = subdetail
                    path = "./report/part/[@index='2']/section/[@index='" + subdetail + "']"
                    for detail in self.tree.findall(path):
                        # nombre de la vuln
                        vuln.name2 = detail.attrib.get('title')
                    if vuln.name2 != vuln.name:
                        pass
                    path = "./report/part/[@index='2']/section/[@index='" + subdetail + "']/section/[@index='" + subdetail + ".2']"
                    for detail in self.tree.findall(path):
                        # data de la vuln
                        vuln.data = detail.find('text').text
                    path = "./report/part/[@index='2']/section/[@index='" + subdetail + "']/section/[@index='" + subdetail + ".5']"
                    for detail in self.tree.findall(path):
                        # recomendacion de la vuln
                        vuln.recommendation2 = detail.find('text').text
                    self.vulns_first.append(vuln)  # <- GUARDADO
            elif len(tablecell.findall('item')) > 1 and i == 3:
                # affected devices
                vuln.affected_devices = []
                for item in tablecell.findall('item'):
                    vuln.affected_devices.append(item.text)
    # parseo vuln de software
    report_tree = self.tree.find("./report/part/[@title='Vulnerability Audit']")
    for itemv in report_tree:
        vuln_soft = VulnSoftNipper()
        # nombre de la vuln
        vuln_soft.name = itemv.attrib.get('title')
        cvss2_vector = itemv.find('infobox/infodata/[@label="CVSSv2 Base"]')
        vuln_soft.cvss2["vector_string"] = cvss2_vector.text.split(' ')[0] if cvss2_vector is not None else None
        for itemvv in itemv:
            if itemvv.attrib.get('title') == 'Summary':
                for i in itemvv:
                    # data de la vuln
                    vuln_soft.data = i.text
            if itemvv.attrib.get('title') == 'Affected Device':
                for i in itemvv:
                    # data del device
                    aux = i.text.split('The')[1]
                    vuln_soft.device = aux.split(' may be affected by this security vulnerability')[0]
            if itemvv.attrib.get('title') == 'References':
                # referencias de la vuln
                vuln_soft.refs = []
                for texto in itemvv.findall('list/listitem/weblink'):
                    vuln_soft.refs.append(texto.text)
        self.vulns_audit.append(vuln_soft)