我正在使用 Python 解析一个大型 XML 文件并停留在删除元素的条件下。我已经像另一个人一样检查了逻辑,但是无论出于何种原因它仍然无法正常工作。本质上,我正在尝试删除非英语的非首选术语,因为我们的系统中不需要它们。所以一个术语可能如下所示
<Subject>
<Terms>
<Non-Preferred_Term>
<Term_Text>hanging buttress</Term_Text>
<Term_Language>Dutch</Term_Language>
</Non-Preferred_Term>
More terms...
</Terms>
</Subject>
基本上我的逻辑是这样找到术语元素,找到非首选术语,查看每个语言的语言,如果语言与英语不匹配,则删除该术语。
for terms in term.iterfind ("Terms"):
for term in terms.iterfind ("Non-Preferred_Term"):
for language in term.iterfind ("Term_Language"):
if language.text != ("English"):
print (language.text)
term.remove (term)
print ("term deleted")
当我在我的测试文件上运行脚本时,它似乎可以工作,因为我打印出每种不是英语的语言文本,因为它运行后跟删除术语。但是,当我查看输出文件时,文件中仍然没有英文术语。当我在我的 700mb 文件上尝试它时,它似乎通常可以工作,但有时会因为 x 不在列表中而崩溃。
有什么建议么?