"调用ElementTree.parse时,不在实体开头的XML或文本声明:第2行,第0列"

fra*_*591 5 python xml elementtree

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

xml.etree.ElementTree.ParseError:不在实体开头的XML或文本声明:第2行,第0列

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)
Run Code Online (Sandbox Code Playgroud)

ale*_*cxe 23

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

xmlExample = """<?xml version="1.0"?>
...
Run Code Online (Sandbox Code Playgroud)

或者,您可能只是strip()XML字符串:

source = io.StringIO(xmlExample.strip())
Run Code Online (Sandbox Code Playgroud)

作为旁注,您不必创建类似文件的缓冲区,.fromstring()而是使用:

root = ET.fromstring(xmlExample)
Run Code Online (Sandbox Code Playgroud)


fra*_*591 7

找到了...第一个元素前面的空格...