【问题标题】:String IO to element.etree字符串 IO 到 element.etree
【发布时间】:2018-07-13 12:25:20
【问题描述】:

我想用 etree 以 xml 的形式解析 StringIO,但是我有以下错误。 示例:

import xml.etree.ElementTree
from io import StringIO

def main():
    in_mem_file = StringIO()
    in_mem_file.write('<?xml version="1.0" encoding="UTF-8"?>')
    in_mem_file.write('<tag>')
    in_mem_file.write('</tag>')
    print(in_mem_file.getvalue())
    e = xml.etree.ElementTree.parse(in_mem_file).getroot()

这会引发以下错误:

xml.etree.ElementTree.ParseError: no element found: line 1, column 0

【问题讨论】:

  • 如果您在创建StringIO 对象时提供完整的XML 内容,它就可以工作。使用write() 不起作用。
  • 什么会起作用?你能举个例子吗?

标签: xml python-3.x elementtree stringio


【解决方案1】:

在创建 StringIO 对象时提供整个 XML 文档。使用write() 不起作用(但我对此没有任何解释)。

import xml.etree.ElementTree as ET
from io import StringIO

XML = """<?xml version="1.0" encoding="UTF-8"?>
    <tag>
    </tag>"""

in_mem_file = StringIO(XML)
tree = ET.parse(in_mem_file)

【讨论】:

    猜你喜欢
    • 2011-10-01
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 2011-08-22
    • 2013-04-09
    • 1970-01-01
    • 2013-05-01
    • 2011-09-17
    相关资源
    最近更新 更多