您需要先注册前缀和名称空间,然后再进行操作fromstring()
(读取xml),以避免使用默认的名称空间前缀(例如ns0
和ns1
等)。
您可以使用此ET.register_namespace()
功能,例如-
ET.register_namespace('<prefix>','http://Test.the.Sdk/2010/07')
ET.register_namespace('a','http://schema.test.org/2004/07/Test.soa.Vocab')
<prefix>
如果您不需要前缀,可以将其留空。
示例/演示-
>>> r = ET.fromstring('<a xmlns="blah">a</a>')
>>> ET.tostring(r)
b'<ns0:a xmlns:ns0="blah">a</ns0:a>'
>>> ET.register_namespace('','blah')
>>> r = ET.fromstring('<a xmlns="blah">a</a>')
>>> ET.tostring(r)
b'<a xmlns="blah">a</a>'