【问题标题】:ElementTree Write to an XMLElementTree 写入 XML
【发布时间】:2016-09-06 08:08:33
【问题描述】:

将已编辑的 XML 根写入新文件的最简单方法是什么?这是我到目前为止所拥有的,它正在抛出 AttributeError: 'module' object has no attribute 'write'
PS:除了ElementTree,我不能使用任何其他的api。

import xml.etree.ElementTree as ET
from xml.etree.ElementTree import Element, SubElement, Comment
from ElementTree_pretty import prettify
tree = ET.parse('file-to-be-edited.xml')
root = tree.getroot()

#Process XML here

ET.write('file-after-edits.xml')

【问题讨论】:

    标签: python xml elementtree


    【解决方案1】:

    您的tree 是一个ElementTree 对象,它提供了一个write() 方法来编写树。例如:

    #Process XML here
    tree.write('file-after-edits.xml', encoding='utf8')
    

    【讨论】:

    • 感谢您的解决方案。我犯了一个愚蠢的错误。有没有办法美化生成的文件?
    • 您可以使用lxml,它提供了与ElementTree 兼容的API。它的tree.write() 方法接受pretty_print=True 参数。
    • 或使用minidom,见:stackoverflow.com/questions/749796/…
    【解决方案2】:

    AttributeError: 'module' object has no attribute 'write' 是说不能直接从ElementTree类调用write方法,它不是静态方法,试试tree.write('file-after-edits.xml'),tree是您来自 ElementTree 的对象。

    【讨论】:

    • 是否可以美化生成的文件?
    猜你喜欢
    • 2020-07-05
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 2015-01-27
    相关资源
    最近更新 更多