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

2024-04-25 09:29:43 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的简单示例中,^{}失败,并出现错误

xml.etree.ElementTree.ParseError: XML or text declaration not at start of entity: line 2, column 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)

Tags: ortextioimport示例sourcedata错误
2条回答

找到了。。。第一个元素前面的空白。。。

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

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

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

source = io.StringIO(xmlExample.strip())

另外,您不必创建类似文件的缓冲区,而是使用^{}

root = ET.fromstring(xmlExample)

相关问题 更多 >