0

我可以将它打印到控制台,这是我想要的方式,但我似乎无法掌握如何保存它。示例中的 XML 不会更改。我正在使用相当大的 XML 文件和 iterparse 函数,因为我认为这很重要。

我的代码:

def xmlTagMethod(xmlfile, changetag):
    tree = ET.ElementTree(file=xmlfile)
    root = tree.getroot()
    for event, elem in ET.iterparse(xmlfile):
        if event == 'end':
            if elem.tag == changetag:
                elem.set('maxwidth', '20')
        print elem.attrib
    tree.write("outPutTagData.xml")
4

1 回答 1

0

您没有对 进行任何更改tree,因此当您编写它时,它将与以前相同。

您只需修改 ET.iterparse(xmlfile) 返回的迭代器的eventelem元素,它是与 .iterparse(xmlfile) 完全分离的对象tree

对于更简单的方法,您可以尝试:

import xml.etree.ElementTree as ET
def xmlTagMethod(xmlfile, changetag):
    tree = ET.ElementTree(file=xmlfile)
    for e in tree.findall(changetag):
        e.set('maxwidth','20')
tree.write("outPutTagData.xml")
于 2015-02-04T08:50:16.463 回答