python - 使用 python lxml 解析部分 XML

标签 python xml lxml

我正在尝试用 Python 解析从网络接收的大型 XML 文件。

为了做到这一点,我获取数据并将其传递给 lxml.etree.iterparse

但是,如果 XML 还没有完全发送,像这样:

<MyXML>
    <MyNode foo="bar">
    <MyNode foo="ba

如果我运行 etree.iterparse(f, tag='MyNode').next() 我会在它被切断的任何地方得到一个 XMLSyntaxError

有什么方法可以让我接收第一个标签(即第一个 MyNode),并且仅在到达文档的那部分时出现异常? (为了使 lxml 真正“流式传输”内容而不是在开始时读取整个内容)。

最佳答案

XMLPullParserHTMLPullParser可能更适合您的需求。他们通过重复调用 parser.feed(data) 来获取数据。在树可用之前,您仍然必须等到所有数据都进来。

关于python - 使用 python lxml 解析部分 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27571623/

相关文章:

python - 我如何映射到字典而不是列表?

python - 在 lxml 中使用命名空间

python - conda,Linux CentOS 7 上的 "Solving environment: failed"错误

python - 尝试在一行 if 语句中使用 pass 关键字时出错

c - 如何使用 libxml2 深入解析 xml 文件

python - 在Python中使用lxml解析ODF

python - 如果需要循环和导入,如何将 Python 程序嵌入到 bash 命令中?

python - 使用 ctypes 包装具有依赖项的编译库

java - 避免使用 web.xml 硬编码 WSDL 位置

java - android.view.InflateException : Binary XML file line #22: Error inflating class ImageView