从XML文件解析的命名空间中删除“:”

时间:2020-07-09 22:35:52

标签: python xml xml-namespaces python-2.6 xml.etree

我正在尝试在Python 2.6.6 上使用 xml.etree.ElementTree 修改XML文件(由于限制),并且面对< strong> ns0 问题。我查看了this问题,并根据建议使用了 ET._namespace_map [uri] =前缀,它删除了ns0,但元素标签仍然具有值。当我们将其用于进一步处理时,如何删除它或影响XML文件的有效性?

示例:

<?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')

注意:我无法使用 lxml 或其他仅从2.7版本开始受支持的xml.etree。

0 个答案:

没有答案