python - 如何根据标签的属性解析 3.5GB 的 XML 文件?
问题描述
我想在 python 中解析这个 XML。我只想找到特定标签的属性。
<managedObject class="XXX" version="XXX18" distName="XXX-RC8/XXX-212404" id="142022">
如果我有上面这样的标签。我必须仅根据版本、类、distname 或 id 查找所有条目。
目前我正在使用:
etree.XPath("child::Title[contains(text(), 'managedObject')]")`
这不适用于当前文件,因为标签有很多属性。文件内容如下所示。我需要一个优化的解决方案来读取一个不占用太多 RAM 的 3GB 文件。
<managedObject class="XXX" version="XXX18" distName="XXX-RC8/XXX-212404" id="142022">
<list name="Options">
<p>0</p>
<p>1</p>
<p>2</p>
<p>3</p>
<p>6</p>
<p>7</p>
<p>8</p>
<p>9</p>
<p>10</p>
<p>11</p>
<p>12</p>
<p>13</p>
<p>14</p>
<p>15</p>
<p>18</p>
</list>
<p name="SomeOption1">12</p>
<p name="SomeOption2">4</p>
<p name="SomeOption3">2</p>
<p name="SomeOption4">0</p>
<p name="SomeOption1">12</p>
<p name="SomeOption2">4</p>
<p name="SomeOption3">2</p>
<p name="SomeOption4">0</p>
<p name="OtherOption">12</p>
<p name="XOtherOption2">4</p>
<p name="XOtherOption3">2</p>
<p name="XOtherOption4">0</p>
<p name="XXXOtherOption1">12</p>
<p name="XXXOtherOption2">4</p>
<p name="XXXOtherOption3">2</p>
<p name="XXXOtherOption4">0</p>
<p name="YYYYXXXOtherOption1">12</p>
<p name="YYYYXXXOtherOption2">4</p>
<p name="YYYYXXXOtherOption3">2</p>
<p name="YYYYXXXOtherOption4">0</p>
</managedObject>
解决方案
推荐阅读
- plugins - Bukkit - 为什么显示为空(使用配置文件)
- javascript - 需要帮助修复此高阶函数的输出。
- python - Python:可传输异常:可传输异常
- python - 如何使用 OpenCV 找到红色区域?
- java - Java(或 C++)如何处理接口中定义的方法的调用
- xcode - watchOS 中的轮播
- firebase - 使用 firebase 在客户端创建具有角色的用户
- javascript - “onClick”和获取引用以在 React 中添加 clickListener 之间有什么区别?
- sql - Oracle Instant Client - SQL*Plus - 错误:没有 TNS 侦听器 (MacOSX)
- python - Pyqt 4 - QWebView.load(url) 泄漏内存(不是来自 python)