使用Python Element Tree解析ASCII文本文件中的xml

Use Python Element Tree to parse xml in ASCII text file

我有包含 XML 部分的 ASCII 文本文件。我尝试使用以下基本命令打开文件,但出现错误:

import xml.etree.ElementTree as ET
tree = ET.parse('data_file.txt')

有没有办法我仍然可以使用 Element Tree 来解析文本文件中的 XML 部分?

您不能使用 ElementTree 来解析格式不完整的文件 XML。如果 XML 文档的根元素之前或之后有文本内容,XML 解析将失败,如果有任何其他违反格式良好的行为也会失败。

更一般地说,符合标准的 XML 解析器只能解析格式正确的 XML。所以你的场景其实很常见。

一种方法是编写一个程序来处理文件并尝试找到嵌入在其他内容中的 XML,然后使用 ElementTree 处理文件的那部分。如果你的XML内容简单,这个还是比较可行的。如果它很复杂,或者如果文本文件中嵌入了多个 XML 文档,它会变得更具挑战性,但它仍然可行。