Python ElementTree“未找到元素”异常

问题描述 投票:0回答:1

进口:

import io
import xml.etree.ElementTree as ElementTree

NOTE:在相同的例外情况下,我也查看了其他线程,他们都提到一个潜在的问题是XML文件可能格式错误。我非常确定,我的地雷组织良好,经过多次检查,然后通过在线验证程序进行了仔细检查。

[基本上,我在io.StringIO文件对象上调用Python的ElementTree.parse()函数时遇到麻烦。我知道此操作有效,因为下面的代码(直接在问题代码上方)有效:

testXMLInput = io.StringIO("<timedmile><miles>1</miles><minutes>1</minutes><seconds>1</seconds><month>1</month><day>1</day><year>1</year></timedmile>")
myElementTree = ElementTree.parse(testXMLInput)

但是,以下代码不起作用:

xmlOutput = io.StringIO("<logdata><timedmiles></timedmiles></logdata>")
testElementTree = ElementTree.parse(xmlOutput)

我尝试在timedmiles元素中放置一个值,但这并没有阻止引发以下异常:

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

问题可能是什么?文档和其他线程似乎没有提到导致此异常的另一个原因。

python xml xml-parsing elementtree
1个回答
0
投票
也许您使用了一些过时的ElementTree版本?

运行ElementTree.VERSION以获取版本。

我使用版本

1.3.0,但没有收到您的错误(在两种情况下)。也许您应该升级软件?

我还有另一句话:在

parse

源文件之后,结果为ElementTree类型。但是要执行各种操作,则应运行root = myElementTree.getroot()(这次结果为Element类型)并使用只是这个root元素。例如如果运行ElementTree.tostring(...),则第一个参数应为

root

,而不是myElementTree
© www.soinside.com 2019 - 2024. All rights reserved.