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

使用lxml从python中的xml中删除名称空间和前缀

使用lxml从python中的xml中删除名称空间和前缀

按照Uku Loskit的建议替换标签。除此之外,请使用lxml.objectify.deannotate

from lxml import etree, objectify

Metadata = '/Users/user1/Desktop/Python/Metadata.xml'
parser = etree.XMLParser(remove_blank_text=True)
tree = etree.parse(Metadata, parser)
root = tree.getroot()

####    
for elem in root.getiterator():
    if not hasattr(elem.tag, 'find'): continue  # (1)
    i = elem.tag.find('}')
    if i >= 0:
        elem.tag = elem.tag[i+1:]
objectify.deannotate(root, cleanup_namespaces=True)
####

tree.write('/Users/user1/Desktop/Python/done.xml',
           pretty_print=True, xml_declaration=True, encoding='UTF-8')

一些标签,例如Comment访问tag属性时返回一个函数。为此增加一个警卫。(1)

python 2022/1/1 18:31:50 有201人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶