问题标签 [iterparse]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
142 浏览

python - 使用 lxml 的 iterparse 时如何跳过格式错误的数据包?

我有一些从wireshark 转换而来的非常大的xml 文件(> 50G)。当使用 iterparse 从这些文件中提取信息时,我发现有一些格式错误的数据包会导致 iterparse 报告错误,它说:

对于事件,上下文中的 elem:文件“iterparse.pxi”,第 207 行,在 lxml.etree.iterparse 中。下一个(src/lxml/lxml.etree.c:126122) lxml.etree.XMLSyntaxError: 属性 p 的规范要求值,第 285430929 行,第 50 列

我该怎么做才能跳过这些格式错误的数据包并继续解析?

0 投票
2 回答
2828 浏览

python - lxml.etree iterparse() 并完全解析元素

我有一个带有如下节点的 XML 文件:

我正在使用 lxml.etree.iterparse() 迭代解析树。我循环遍历每个 trkpt 元素的子节点,并希望打印子节点的文本值。例如

问题是在这个阶段节点没有文本,所以打印的输出是'None'。

我已经通过用'print etree.tostring(child)'替换'print child.text'语句来验证这一点,输出看起来像这样

根据文档,“请注意,在收到开始事件时,元素的文本、尾部和子项不一定存在。只有结束事件才能保证元素已被完全解析。”

所以我把我的for循环改成了这个,注意'if event == "end":'语句

但我仍然得到相同的结果。任何帮助将不胜感激。

0 投票
1 回答
174 浏览

python - 为什么这个 OpenStreetMap 树的某些元素会被 iterparse 跳过?

我有一个捕获一个小社区的 OSM 文件。 http://pastebin.com/xeWJsPeY

我有 Python 代码,它做了很多额外的解析,但这里可以看到一个主要问题的例子:

在这里和其他地方,我注意到缺少特定条目的标签(其中标签是一个看起来像的元素。据我所知, <tag k="highway" v="residential" />所有元素都被正确读取。<nd .../>

处理文件时我注意到的另一件事是,当我tostring()在带有'way'标签的元素上使用时,如果正在读取的元素有错误<tag .../>,它不会在其末尾附加换行符。例如,运行时

<tag .../>缺少元素的条目的输出是

与形成得很好的相比,

这里发生了什么问题?

0 投票
0 回答
41 浏览

python - 在 python iterparse 中使用下划线“_”

Python iterparse的新手,iterparse中的下划线“_”是什么意思?

例如:

0 投票
1 回答
859 浏览

python - 使用 lxml 修改大型 xml 文件

语言:- Python 2.7.6

文件大小:- 1.5 GB

XML 格式

我必须

A)读取所有节点<product>

B)删除其中一些节点(如果<id>属性的文本在 python set()

C)更新/更改几个节点(如果<id>属性的文本在 python dict 中

D)追加/写入一些新节点

问题是我的 XML 文件很大(大约 1.5 GB)。我做了一些研究并决定将 lxml 用于所有这些目的。

我正在尝试使用 iterparse() 和 element.clear() 来实现这一点,因为它不会消耗我所有的内存。

注意:- 我想在一次扫描 XML 文件中完成所有这 4 项任务

问题

1)我可以在一次扫描文件中实现所有这些吗?

2)如果是,如何删除和更新我正在处理的元素节点?

3) 我应该改用 tree.xpath() 吗?如果是,它会为 1.5 GB 文件消耗多少内存,或者它的工作方式与 iterparse() 相同

我对python不是很有经验。我来自Java背景。

0 投票
1 回答
2804 浏览

python - 使用python迭代大型XML

这让我整天发疯,我希望能在解析大型 XML 文件时提供一些帮助......

文件包含超过 900,000 行,并以 gzip 格式下载,我确实有一些东西可以使用数据提取来测试并用 minidom 解析它,但那只是不会将其剪切为完整文件,所以我正在看iterparse,但我无法让任何示例工作,甚至到了无法导入错误的地步....似乎几乎无法与我发现的大多数代码示例一起使用

我确实有一件事情正在接近 iterparse 和 cElementTree

但这会打印出以下内容

注意它是如何将顶部元素的东西放入每个项目中的???无论如何...下面的示例 xml ......这就是提前寻求帮助

0 投票
0 回答
61 浏览

python - 如何更改打印的 xml 数据的编码并仍然剥离命名空间?

我需要从多个 xml 文件中检索大量信息。我正在尝试制作一个 webscraper,但我在编码时遇到了问题,同时仍然剥离了所有的命名空间(参见代码)。xml 文件的内容是用丹麦语编写的,并且包含特殊字符“æøå”。

如何在剥离命名空间的同时更改打印的 xml 数据的文件编码?

root.findtext("loremIpsum/loremIpsum")如果是特殊字符“ø”,则当前打印输出:

预期输出:

0 投票
1 回答
399 浏览

python - Python XML iterparse() namespacing

According to this post, I successfully can parse my XML file, and reading it's content. However, if I add namespace to it, the whole thing goes wrong.

Let's consider the following XML:

My iterparse looks like this:

I found several examples, but to be honest I don't really understand them, and have no idead how to solve this problem.

0 投票
1 回答
1455 浏览

python - 如何使用 iterparse 在 xml 中查找起始元素名称

我有以下示例 xml

我想使用python iter parse从xml中提取边界和节点我尝试了以下代码片段

但我无法提取边界和节点......我错过了什么?

0 投票
0 回答
302 浏览

python - ElementTree 中的 iterparse 吃掉内存

我编写了以下代码来从 Open Street Map 读取多伦多的 XML/OSM 数据并获取所有邮政编码的列表。

虽然代码在 1 秒内从包含样本数据的 9 MB 文件中输出结果,但当我在包含整个多伦多(1.15 GB)数据的文件上朗姆酒时,它会占用整个 PC 内存并永远占用。

我假设使用 iterparse 和 oneN.clear() 应该在运行主循环时释放我的内存。有人可以指导我我做错了什么吗?TIA