python - 防止 ElementTree 为每个元素添加命名空间

标签 python xml elementtree

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

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

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

是否有正确的方法将 ElementTree 告诉 只需将命名空间保留在它们最初出现的元素中 ?

最佳答案

试试这个:

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)

关于python - 防止 ElementTree 为每个元素添加命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45433631/

相关文章:

python - TK |制作 TTK 样式时图像 "pyimage1"不存在

python - 在列表中查找包含最大数字的字符串

java - XML 到字符串在一个数据库上工作正常,但在第二个数据库上工作不正常

java - 使用自定义 xml 协议(protocol)实现客户端,无需定义或模式

python - 使用 xml.etree.ElementTree 获取文件中的 XML 标签列表

python - 使用 doctesting 对类内部定义的方法进行单元测试

python - 如何使用 PVLIB 构建通用光伏系统

java - 解析没有文档开始和结束标记的 XML

python - 如何用 lxml 中的文本替换元素?

Python ElementTree 重复检查器