您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中使用ETree保存XML。它没有保留名称空间,并添加了ns0,ns1和删除xmlns标签

在Python中使用ETree保存XML。它没有保留名称空间,并添加了ns0,ns1和删除xmlns标签

您需要先注册前缀和名称空间,然后再进行操作fromstring()(读取xml),以避免使用认的名称空间前缀(例如ns0ns1等)。

您可以使用此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>'
python 2022/1/1 18:33:21 有343人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶