我正在解析一個(gè) XML 文件,替換它的值并覆蓋它,一切正常,但覆蓋后我的兩個(gè)根命名空間之一丟失了。我發(fā)現(xiàn)我必須注冊(cè)我的名稱空間,我做到了,但它并沒(méi)有改變它:有 Xml 文件輸入:<?xml version="1.0" encoding ="utf8"?><Document xmlns:xsi = "sample" xmlns ="sample2">有輸出:<?xml version='1.0' encoding='UTF-8'?><Document xmlns="sample2">當(dāng)我注冊(cè)我的命名空間時(shí):ET.register_namespace('xsi' , "sample")ET.register_namespace('' , "Sample2" )書(shū)寫方法:tree.write(path , xml_declaration=True, method='xml', encoding='UTF-8')您知道問(wèn)題是什么以及如何解決它嗎?
1 回答

呼啦一陣風(fēng)
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用 lxml 庫(kù)可能會(huì)更容易:
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"/>
添加回答
舉報(bào)
0/150
提交
取消