我正在解析一個 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
提交
取消