Find and replacing text in elementtree

可紊 提交于 2019-12-06 14:46:47

Replace text, tail attributes.

import lxml.etree as ET

with open('1.xml', 'rb+') as f:
    tree = ET.parse(f)
    root = tree.getroot()
    for elem in root.getiterator():
        if elem.text:
            elem.text = elem.text.replace('VirtualBox', 'Xen')
        if elem.tail:
            elem.tail = elem.tail.replace('VirtualBox', 'Xen')

    f.seek(0)
    f.write(ET.tostring(tree, encoding='UTF-8', xml_declaration=True))
    f.truncate()

Probably the simplest way is to do:

ifile = open('input_file','r')
ofile = open('output_file','w')
for line in ifile.readlines():
  ofile.write(line.replace('VirtualBox','Xen'))
ifile.close()
ofile.close()
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!