进口:
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
问题可能是什么?文档和其他线程似乎没有提到导致此异常的另一个原因。
运行ElementTree.VERSION
以获取版本。
我使用版本
1.3.0,但没有收到您的错误(在两种情况下)。也许您应该升级软件?
我还有另一句话:在parse
源文件之后,结果为ElementTree类型。但是要执行各种操作,则应运行root = myElementTree.getroot()
(这次结果为Element类型)并使用只是这个root元素。例如如果运行ElementTree.tostring(...)
,则第一个参数应为root
,而不是myElementTree。