阻止ElementTree向每个元素添加名称空间

时间:2017-08-01 09:10:43

标签: python xml elementtree

我在Python中使用ElementTree来解析xml文件并在其中添加或删除元素。

在我的XML文件中,root和根目录下面的元素有一个命名空间,但所有其他元素都没有。

我看到ElementTree在打印修改后的树时,会为每个元素添加名称空间。

是否有正确的方法告诉ElementTree 将名称空间保留在最初出现的元素中

1 个答案:

答案 0 :(得分:0)

试试这个:

import xml.etree.ElementTree as ET
namespaces = {
    '':         'http://tempuri.org/',
    'soap':     'http://schemas.xmlsoap.org/soap/envelope/',
    'xsi':      'http://www.w3.org/2001/XMLSchema-instance',
    'xsd':      'http://www.w3.org/2001/XMLSchema',
}
for prefix, uri in namespaces.items():
    ET.register_namespace(prefix, uri)