一个小型的Python库,用于快速遍历XML数据。
项目描述
## 基本用法
import drill
doc = drill.parse(path_or_url_or_string)
# 钻取到特定元素。
print unicode(doc.book.title)
# 迭代文档中所有的"title"标签。
for t in doc.iter('title')
print t.attrs, t.data
# 找到所有具有"baz"子节点和"foo"父节点的"bar"节点。
q = doc.find('//foo/bar[baz]')
# 轻松访问匹配结果的第一和最后一个元素。
print q.first(), q.last()
# 迭代结果。
for e in q
do_something(e)
# 仅解析匹配某些路径的元素
for e in drill.iterparse(filelike, xpath='root/*/something')
print e.tagname, e.data
## 特性
* 可运行测试套件
* 支持 Python 3
## 优点
* 纯Python
* 比ElementTree解析更快、更高效
* 使用ElementTree,一个 ~150 MB 的XML文件 (~3,000,000 个元素) 解析大约需要 46 秒,消耗 ~1.3 GB 的RAM
* 使用drill解析同一文件大约需要 24 秒,消耗 ~950 MB 的RAM
* 在Core i5 @ 2.8 GHz,Windows 7上进行的非常不科学的基准测试。YMMV。
* 提供许多方便的方法快速访问元素
* doc.response.resultCode.data
* root[2].child['attr']
* first/last/prev/next 方法用于遍历兄弟元素
import drill
doc = drill.parse(path_or_url_or_string)
# 钻取到特定元素。
print unicode(doc.book.title)
# 迭代文档中所有的"title"标签。
for t in doc.iter('title')
print t.attrs, t.data
# 找到所有具有"baz"子节点和"foo"父节点的"bar"节点。
q = doc.find('//foo/bar[baz]')
# 轻松访问匹配结果的第一和最后一个元素。
print q.first(), q.last()
# 迭代结果。
for e in q
do_something(e)
# 仅解析匹配某些路径的元素
for e in drill.iterparse(filelike, xpath='root/*/something')
print e.tagname, e.data
## 特性
* 可运行测试套件
* 支持 Python 3
## 优点
* 纯Python
* 比ElementTree解析更快、更高效
* 使用ElementTree,一个 ~150 MB 的XML文件 (~3,000,000 个元素) 解析大约需要 46 秒,消耗 ~1.3 GB 的RAM
* 使用drill解析同一文件大约需要 24 秒,消耗 ~950 MB 的RAM
* 在Core i5 @ 2.8 GHz,Windows 7上进行的非常不科学的基准测试。YMMV。
* 提供许多方便的方法快速访问元素
* doc.response.resultCode.data
* root[2].child['attr']
* first/last/prev/next 方法用于遍历兄弟元素
项目详情
下载文件
下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包的信息。
源分布
drill-1.2.0.tar.gz (7.5 kB 查看哈希值)
构建分布
drill-1.2.0-py2.py3-none-any.whl (8.4 kB 查看哈希值)
关闭
drill-1.2.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d2645ed6d3cfc925bd7bf5328982d8a5aff7cda9c7e56107c7a74482f7037b7d |
|
MD5 | 8b995f9ce6739ee3f2722b4aff6c065e |
|
BLAKE2b-256 | e4213d1dec8958c74c3d1f46a6f264e12b146a4b97458240a68ad10ab3a41031 |
关闭
drill-1.2.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fb5a1eae68993076d033034dd446a832f2b9757222478c47f0cf129bafe70a74 |
|
MD5 | 0183625d1a2b40b1ab2d9465c6e16448 |
|
BLAKE2b-256 | 736c2871f4b4ad4dbc2d0fc7078e1b91fbdd2a62b33b9ffe9cba3dc610fd669b |