【问题标题】:ParseError: junk after document element: line 7, column 0, (Python, XML parsing)ParseError:文档元素后的垃圾:第 7 行,第 0 列,(Python,XML 解析)
【发布时间】:2020-09-15 14:23:19
【问题描述】:

我有一个虚拟的 xml 文件,

<?xml version="1.0" encoding="UTF-8"?>
<hello xmlns="abc">
<inside>
  <ok>xyz</ok>
</inside>
</hello>
<?xml version="1.0" encoding="UTF-8"?>
  <xyz xmlns="acxd">
  </xyz>
<?xml version="1.0" encoding="UTF-8"?>
<zz xmlns="zmrt">
</zz>
]]>]]>

我正在尝试使用以下代码解析这个 xml 文件。

import xml.etree.ElementTree as ET
mytree = ET.parse(temp_xml)

我得到的错误是"ParseError: junk after document element: line 7, column 0"。 我确实尝试删除']]>]]>',即在第 7 行,但我仍然收到相同的错误,即"ParseError: junk after document element: line 8, column 0"。有没有办法处理这样的错误,或者我们可以跳过阅读这些有垃圾数据的行?

【问题讨论】:

  • 我对 XML 不是很熟悉,但是你可以在一个文件中包含多个文档吗?
  • @JammyDodger:你足够熟悉,可以正确地怀疑这个问题。格式良好的 XML 文档中可能只存在一个根元素。有关详细信息,请参阅my answer below

标签: python xml parsing


【解决方案1】:

XML 文档可能只有一个根元素。您的有三个,因此不是well-formed。如果您希望使用 XML 工具对其进行解析,您必须首先手动或以编程方式将根元素分离到它们自己的文档中。

请注意,一个 XML 文档也最多可以有一个 XML 声明 (&lt;?xml version="1.0" encoding="UTF-8"?&gt;),如果存在,它必须位于文件顶部。

另请参阅

【讨论】:

  • 感谢分享所有链接,我会检查的。
猜你喜欢
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 2013-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多