ElementTree.parse() 在下面的简单示例中失败,并显示以下错误:



XML看起来有效并且代码很简单,那么我在做什么错呢?

xmlExample = """
<?xml version="1.0"?>
<data>
    stuff
</data>
"""
import io
source = io.StringIO(xmlExample)
import xml.etree.ElementTree as ET
tree = ET.parse(source)

最佳答案

XML字符串的开头有一个换行符,请将其删除:

xmlExample = """<?xml version="1.0"?>
...

或者,您可以只对XML字符串strip():
source = io.StringIO(xmlExample.strip())

附带说明,您不必创建类似文件的缓冲区,而使用 .fromstring() 代替:
root = ET.fromstring(xmlExample)

10-04 18:40