使用Python元素树解析ASCII文本文件中的xml

时间:2018-01-06 20:56:35

标签: python xml elementtree

我有ASCII文本文件,其中包含XML部分。我尝试以下基本命令来打开文件,但收到错误:

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

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

1 个答案:

答案 0 :(得分:2)

您无法使用ElementTree解析整个格式良好的XML中的文件。如果在XML文档的根元素之前或之后存在文本内容,则XML解析将失败,如果存在任何其他违反良构的违规行为,将会失败。

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

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