Three very similar functions operating on XML files
One of the possible ways to improve on following the DRY principle would be to extract the XML tree iteration part which is the same in all 3 functions. Something like this generator:

def values(tree):
    root = tree.getroot()
    for child in root.iter('data'):
        if child.attrib.get('namespace') == 'preserve':
            node = child[0]
            if node.tag == "value" and node.text is not None:
                yield node


Then, you can use it this way:

tree = ET.parse(caminho)
for node in values(tree):
    # do something with node