我正在解析一个 XML 文件,替换它的值并覆盖它,一切正常,但覆盖后我的两个根命名空间之一丢失了。我发现我必须注册我的名称空间,我做到了,但它并没有改变它:有 Xml 文件输入:<?xml version="1.0" encoding ="utf8"?><Document xmlns:xsi = "sample" xmlns ="sample2">有输出:<?xml version='1.0' encoding='UTF-8'?><Document xmlns="sample2">当我注册我的命名空间时:ET.register_namespace('xsi' , "sample")ET.register_namespace('' , "Sample2" )书写方法:tree.write(path , xml_declaration=True, method='xml', encoding='UTF-8')您知道问题是什么以及如何解决它吗?
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
使用 lxml 库可能会更容易:
from lxml import etree
nsmap = {'xsi': "sample", None: "sample2"}
root = etree.Element('Document', nsmap=nsmap)
print(etree.tostring(root))
这给出了所需的输出:
<Document xmlns:xsi="sample" xmlns="sample2"/>
添加回答
举报
0/150
提交
取消