【问题标题】:Python - write Xml (formatted)Python - 编写 Xml(格式化)
【发布时间】:2015-11-13 14:38:07
【问题描述】:

我编写这个 python 脚本是为了创建 Xml 内容,我想把这个“美化”的 xml 写入一个文件(完成 50%):

到目前为止我的脚本:

    data = ET.Element("data")

    project = ET.SubElement(data, "project")        
    project.text = "This project text"

    rawString = ET.tostring(data, "utf-8")
    reparsed = xml.dom.minidom.parseString(rawString)

    cleanXml = reparsed.toprettyxml(indent="    ")

    # This prints the prettified xml i would like to save to a file
    print cleanXml

    # This part does not work, the only parameter i can pass is "data"
    # But when i pass "data" as a parameter, a xml-string is written to the file
    tree = ET.ElementTree(cleanXml)
    tree.write("config.xml")

当我将 cleanXml 作为参数传递时出现的错误:

Traceback (most recent call last):
  File "app.py", line 45, in <module>
    tree.write("config.xml")
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 817, in write
    self._root, encoding, default_namespace
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 876, in _namespaces
    iterate = elem.getiterator # cET compatibility
AttributeError: 'unicode' object has no attribute 'getiterator'

有人知道我如何将美化的 xml 保存到文件中吗? 谢谢和问候!

【问题讨论】:

    标签: python xml format elementtree prettify


    【解决方案1】:

    ElementTree constructor 可以传递根元素和文件。要从字符串创建ElementTree,请使用ElementTree.fromstring

    但是,这不是您想要的。只需打开一个文件,直接写入字符串即可:

    with open("config.xml", "w") as config_file:
        config_file.write(cleanXml)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-18
      • 2016-07-16
      • 2011-03-17
      • 2022-01-22
      • 2013-04-16
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多