我正在尝试使用 lxml 处理在 XML 内容之前和之后可能有一些非 xml 垃圾的文件,想象有人捕获了一个终端缓冲区,我有这样的东西:
user@host: cat /tmp/log.xml
<log>
<foo>...</foo>
<bar>..
...
</bar>
</log>
user@host:
如果我交给 etree.parse 文件名,它会阻塞开始的内容。我可以删除第一组行,直到找到以“<”开头的行并将其交给 etree.parse,但随后它会阻塞关闭内容。打开和关闭的非 xml 垃圾可以是任何东西。我可以坚持在文件中只使用有效的 XML,但我试图容忍我的输入。有任何想法吗?