Python xml.etree.cElementTree.register_namespace() Examples

The following are 6 code examples of xml.etree.cElementTree.register_namespace(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module xml.etree.cElementTree , or try the search function .
Example #1
Source File: random_manifest.py    From Obfuscapk with MIT License 6 votes vote down vote up
def obfuscate(self, obfuscation_info: Obfuscation):
        self.logger.info('Running "{0}" obfuscator'.format(self.__class__.__name__))

        try:
            # Change default namespace.
            Xml.register_namespace('obfuscation', 'http://schemas.android.com/apk/res/android')

            xml_parser = Xml.XMLParser(encoding='utf-8')
            manifest_tree = Xml.parse(obfuscation_info.get_manifest_file(), parser=xml_parser)
            manifest_root = manifest_tree.getroot()
            self.remove_xml_duplicates(manifest_root)
            self.scramble_xml_element(manifest_root)
            self.indent_xml(manifest_root)

            # Write the changes into the manifest file.
            manifest_tree.write(obfuscation_info.get_manifest_file(), encoding='utf-8')

        except Exception as e:
            self.logger.error('Error during execution of "{0}" obfuscator: {1}'.format(self.__class__.__name__, e))
            raise

        finally:
            obfuscation_info.used_obfuscators.append(self.__class__.__name__) 
Example #2
Source File: xml_.py    From ryu with Apache License 2.0 5 votes vote down vote up
def register_namespace(prefix, uri):
        from xml.etree import ElementTree
        # cElementTree uses ElementTree's _namespace_map, so that's ok
        ElementTree._namespace_map[uri] = prefix 
Example #3
Source File: collada.py    From BlenderRobotDesigner with GNU General Public License v2.0 5 votes vote down vote up
def write(self, filename):
        # Output does not look nice. Use `xmllint --format <input> > <output>'
        # to get a nice format (part of libxml2)

        etree.register_namespace('', self.namespace)
        self.doc.write(filename, encoding="UTF-8") 
Example #4
Source File: writexl.py    From pylightxl with MIT License 5 votes vote down vote up
def alt_app_text(db, filepath):
    """
    Takes a docProps/app.xml and returns a db altered text version of the xml

    :param pylightxl.Database db: pylightxl database that contains data to update xml file
    :param str filepath: file path for docProps/app.xml
    :return str: returns the updated xml text
    """

    # extract text from existing app.xml
    ns = xml_namespace(filepath)
    for prefix, uri in ns.items():
        ET.register_namespace(prefix,uri)

    tree = ET.parse(filepath)
    root = tree.getroot()

    # sheet sizes
    tag_i4 = root.findall('./default:HeadingPairs//vt:i4', ns)[0]
    tag_i4.text = str(len(db.ws_names))
    tag_titles_vector = root.findall('./default:TitlesOfParts/vt:vector', ns)[0]
    tag_titles_vector.set('size', str(len(db.ws_names)))
    # sheet names, remove them then add new ones
    for sheet in root.findall('./default:TitlesOfParts//vt:lpstr', ns):
        root.find('./default:TitlesOfParts/vt:vector', ns).remove(sheet)
    for sheet_name in db.ws_names:
        element = ET.Element('vt:lpstr')
        element.text = sheet_name

        root.find('./default:TitlesOfParts/vt:vector', ns).append(element)

    # reset default namespace
    ET.register_namespace('', ns['default'])

    # roll up entire xml file as text
    text = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n' + ET.tostring(root, encoding='unicode')

    return text 
Example #5
Source File: writexl.py    From pylightxl with MIT License 5 votes vote down vote up
def alt_getsheetref(temp_folder):
    """
    Takes a file path for the temp pylightxl uncompressed excel xml files and returns the un-altered
    filenames and rIds

    :param str path: file path to pylightxl_temp
    :return dict: dictionary of filenames {rId: {name: '', filename: ''}}
    """

    sheetref = {}

    # -------------------------------------------------------------
    # get worksheet filenames and Ids
    ns = xml_namespace(temp_folder + '/xl/_rels/workbook.xml.rels')
    for prefix, uri in ns.items():
        ET.register_namespace(prefix,uri)

    tree = ET.parse(temp_folder + '/xl/_rels/workbook.xml.rels')
    root = tree.getroot()

    for element in root.findall('./default:Relationship', ns):
        if 'worksheets/sheet' in element.get('Target'):
            Id = element.get('Id')
            filename = element.get('Target').split('/')[1].replace('"', '')
            sheetref.update({Id: {'name': '', 'filename': filename}})

    # -------------------------------------------------------------
    # get custom worksheet names
    ns = xml_namespace(temp_folder + '/xl/workbook.xml')
    for prefix, uri in ns.items():
        ET.register_namespace(prefix,uri)
    tree = ET.parse(temp_folder + '/xl/workbook.xml')
    root = tree.getroot()

    for element in root.findall('./default:sheets/default:sheet', ns):
        Id = 'rId' + element.get('sheetId')
        sheetref[Id]['name'] = element.get('name')

    return sheetref 
Example #6
Source File: hikvision.py    From pyHik with MIT License 5 votes vote down vote up
def get_motion_detection(self):
        """Fetch current motion state from camera"""
        url = ('%s/ISAPI/System/Video/inputs/'
               'channels/1/motionDetection') % self.root_url

        try:
            response = self.hik_request.get(url, timeout=CONNECT_TIMEOUT)
        except (requests.exceptions.RequestException,
                requests.exceptions.ConnectionError) as err:
            _LOGGING.error('Unable to fetch MotionDetection, error: %s', err)
            self.motion_detection = None
            return self.motion_detection

        if response.status_code == requests.codes.unauthorized:
            _LOGGING.error('Authentication failed')
            self.motion_detection = None
            return self.motion_detection

        if response.status_code != requests.codes.ok:
            # If we didn't receive 200, abort
            _LOGGING.debug('Unable to fetch motion detection.')
            self.motion_detection = None
            return self.motion_detection

        try:
            tree = ET.fromstring(response.text)
            ET.register_namespace("", self.namespace)
            enabled = tree.find(self.element_query('enabled'))

            if enabled is not None:
                self._motion_detection_xml = tree
            self.motion_detection = {'true': True, 'false': False}[enabled.text]
            return self.motion_detection

        except AttributeError as err:
            _LOGGING.error('Entire response: %s', response.text)
            _LOGGING.error('There was a problem: %s', err)
            self.motion_detection = None
            return self.motion_detection