Удаление ":" из пространства имен при синтаксическом анализе файла XML - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь изменить файл XML, используя xml .etree.ElementTree на Python 2.6.6 (из-за ограничений) и столкнулся с проблемой ns0 . Я посмотрел на эту проблему и использовал ET._namespace_map [uri] = prefix , как было предложено, что удалило ns0, но теги элементов все еще имеют значение : . Как мы его удалим или это повлияет на действительность файла XML при использовании if для дальнейшей обработки?

Пример:

<?xml version="1.0" encoding="UTF-8" ?>
<Seed xmlns="http://www.example.com">
    <TagA>
        <TagB>B</TagB>
        <TagC>c</TagC>
    </TagA>
</Seed>

Скрипт

import xml.etree.ElementTree as ET

tree = ET.parse('sample.xml')
root = tree.getroot()

try:
    ET.register_namespace("","http://example.com")
except AttributeError:
    def register_namespace(prefix, uri):
        ET._namespace_map[uri] = prefix
    register_namespace("","http://www.example.com")
tree.write('sample.xml')

Примечание: Я не мог использовать l xml или другой xml .etree, который поддерживается только с версии 2.7 .

...