gpt4 book ai didi

python - 需要在 Python 中使用 BeautifulSoup 将 XML 文件作为流读取

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:05 25 4
gpt4 key购买 nike

我有一个难题。

我需要从各种来源读取非常大的 XML 文件,因此这些文件通常是无效的 XML 或格式错误的 XML。我仍然必须能够读取文件并从中提取一些信息。我确实需要获取标签信息,所以我需要 XML 解析器。

是否可以使用 Beautiful Soup 将数据作为流而不是整个文件读取到内存中?

我尝试使用 ElementTree,但我不能,因为它会阻塞任何格式错误的 XML。

如果 Python 不是用于该项目的最佳语言,请添加您的建议。

最佳答案

据我所知,Beautiful Soup 没有流式 API。但是,您还有其他选择。

解析大型 XML 流的经典方法是使用面向事件的解析器,即 SAX。在 Python 中,xml.sax.xmlreader。它不会因格式错误的 XML 而窒息。您可以避免文件的错误部分并从其余部分提取信息。

然而,SAX 是低级的,并且边缘有点粗糙。在python语境下,感觉糟透了。

另一方面,xml.etree.cElementTree 实现具有更好的界面,速度非常快,并且可以通过 iterparse() 方法处理流.

如果您能找到管理错误的方法,

ElementTree 会更胜一筹。

关于python - 需要在 Python 中使用 BeautifulSoup 将 XML 文件作为流读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21740376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com