gpt4 book ai didi

python XML : ParseError: junk after document element

转载 作者:太空狗 更新时间:2023-10-29 18:21:54 27 4
gpt4 key购买 nike

尝试将 XML 文件解析为 ElementTree:

>>> import xml.etree.cElementTree as ET
>>> tree = ET.ElementTree(file='D:\Temp\Slikvideo\JPEG\SV_4_1_mask\index.xml')

我收到以下错误:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Program Files\Anaconda2\lib\xml\etree\ElementTree.py", line 611, in __init__
self.parse(file)
File "<string>", line 38, in parse
ParseError: junk after document element: line 3, column 0

XML 文件的开头是这样的:

<?xml version="1.0" encoding="UTF-8" ?>
<Version Writer="E:\d\src\Modules\SceneSerialization\src\mitkSceneIO.cpp" Revision="$Revision: 17055 $" FileVersion="1" />
<node UID="OBJECT_2016080819041580480127">
<source UID="OBJECT_2016080819041550469454" />
<data type="LabelSetImage" file="hfbaaa_Bolus.nrrd" />
<properties file="sicaaa" />
</node>
<node UID="OBJECT_2016080819041512769572">
<source UID="OBJECT_2016080819041598947781" />
<data type="LabelSetImage" file="ifbaaa_Bolus.nrrd" />
<properties file="ticaaa" />
</node>

紧随其后的是更多节点。

我在第 3 行第 0 列中没有看到任何垃圾?我认为一定有其他错误原因。

.xml文件由外部软件生成MITK所以我认为应该没问题。

在 Win 7、64 位、VS2015、Anaconda 上工作

最佳答案

正如@Matthias Wiehl 所说,ElementTree 只需要一个根节点,并且不是格式正确的 XML,应该在其源头固定。作为解决方法,您可以向文档添加一个假的根节点。

import xml.etree.cElementTree as ET
import re

with open("index.xml") as f:
xml = f.read()
tree = ET.fromstring(re.sub(r"(<\?xml[^>]+\?>)", r"\1<root>", xml) + "</root>")

关于 python XML : ParseError: junk after document element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38853644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com