这是因为在使用 XML 库时,会自动添加命名空间前缀(如 'ns0'、'ns1' 等)来标识 XML 文档中的命名空间。这些前缀是由 XML 库自动生成的,而不是 XML 文档中原有的。

要解决这个问题,可以在创建 XML 元素时,手动指定命名空间前缀和 URI,而不是让 XML 库自动生成。例如,可以使用以下代码:

import xml.etree.ElementTree as ET

# 创建根元素
root = ET.Element('{http://example.com/namespace}root', nsmap={'prefix': 'http://example.com/namespace'})

# 创建子元素并添加
element = ET.SubElement(root, '{http://example.com/namespace}element')
element.text = 'Hello World!'

# 保存 XML 文档
tree = ET.ElementTree(root)
tree.write('output.xml', encoding='utf-8', xml_declaration=True)

在这个例子中,我们手动指定了命名空间前缀为 'prefix',URI 为 'http://example.com/namespace'。这样保存后的 XML 文档中就不会出现自动生成的 'ns0' 前缀了。

Python 3 使用 xml.etree.ElementTree 修改 XML 时出现 'ns0' 前缀的解决方法

原文地址: https://www.cveoy.top/t/topic/nHM4 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录