问题标签 [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.
python - Python:XPath 在 ElementTree 中不可用
我正在尝试使用iterparse()
of解析 iTunes 播放列表,ElementTree
但出现以下错误:
代码如下:
我做错了什么?文件太大,所以iterparse()
无论如何我都必须使用。
python - iterparse 无法解析字段,而其他类似的都可以
我使用 Pythoniterparse
来解析 nessus 扫描的 XML 结果(.nessus 文件)。解析在意外记录上失败,但类似的记录已被正确解析。
XML 文件的一般结构是很多记录,如下所示:
换句话说,很多主机(ReportHost
)有很多要报告的项目(ReportItem
),而后者有几个特征(foo
,bar
)。我将着眼于为每个项目生成一个具有其特征的行。
解析在文件中间的一行中失败(foo
在这种情况下cvss_base_score
)
而大约 200 条类似的行已被解析而没有问题。
相关的代码如下——它设置了上下文标记(inReportHost
它inReportEvent
告诉我我所在的 XML 文件的具体位置,并根据上下文分配或打印一个值)
cvss
有时具有 None 值(在cvss = elem.text
分配之后),即使相同的条目已在文件中较早地被正确解析。
如果我在分配下面添加一些类似的东西
然后解析许多进一步cvss
分配它们的正确值(而其他一些是无)。
当采取<ReportHost>...</reportHost>
which 导致错误的解析并通过程序运行它时 - 它工作正常(即按预期cvss
分配)。9.3
我迷失在我的代码中出现错误的地方,因为有大量相似的记录,有些是正确处理的,有些是不正确的(有些记录是相同的,但处理方式仍然不同)。我也找不到有关失败记录的任何具体信息-早晚相同的记录都可以。
python - GAE Python LXML - 属性对象的 XMLSyntaxError 规范强制值
我在 Python 上使用 Google App Engine 并尝试获取 GZipped XML 文件并使用 LXML 的 iterparse 对其进行解析。我使用来自 lxml.de 的示例来创建以下代码:
当我运行它时,它给了我以下错误:
这个错误是什么意思?我猜测 XML 文件格式不正确,但是我不知道在哪里寻找问题。任何帮助,将不胜感激!
python - 在保持上下文的同时使用 iterparse 的最佳实践?
在我提出关于 iterparse 一般用法的问题(以及JF Sebastian的回答)之后,我将重新组织我的代码以解析 nessus XML 结果文件。引用前面的问题,文件结构是
换句话说,很多主机(ReportHost
)有很多要报告的项目(ReportItem
),而后者有几个特征(foo
,bar
)。我将着眼于为每个项目生成一行,其特点是:
我了解如何从 XML 文件中提取给定的文件(这实质上是我之前问题的答案)。我需要将这些提取的字段保留在上下文中(= 我需要知道它们ReportHost
与哪些ReportItem
相关)。我的想法是使用一个标记,一个变量会告诉我我是在 aReportHost
还是ReportItem
block 中并从那里决定 ( if inReportHost: ...
) - 不过,我担心这不是使用 iterparse 导航 XML 的正确方法。
是否有“最佳实践”文件可以参考?
编辑:改进后的评论示例
xml - 使用 iterparse 时出现 XML 语法错误
我正在用 Python 解析一个大型 XML 文件。大型 XML 文件的相关部分如下:
我正在使用该iterparse
模块来解析这个 XML。
我收到以下带有以下跟踪的 XMLSyntaxError
一些重要的点——
[1] 必须使用该iterparse
模块,因为 XML 的大小为 3GB(或更多)。
[2] 我只提供了引发语法错误的 XML 文件部分。
我的问题如下:
[1] 我可以自动修复这个问题吗?如果是这样,怎么做?
[2] 我可以手动解决这个问题吗?如果是这样,怎么做?
[3] 我可以忽略这个问题并继续解析我的大型 XML 文件吗?如果是这样,怎么做?
我看过以下资源:
在解析大型 XML 文件时,我应该如何处理 Python 的 lxml 中的 XMLSyntaxError?
有没有办法在无效的 Char 值上恢复 iterparse?
但没有人能回答我的问题。
python - 使用 Python iterparse 检索 XML 属性值
我试图找出如何在 Python (2.7) 中使用 cElementTree iterparse 检索 XML 属性值。我的 XML 是这样的:
我的代码是这样的:
我正在处理来自标准输入的大数据。我没有运气弄清楚这一点。有人可以告诉我如何(最佳?)这样做吗?
iterparse - 使用默认命名空间解析 xml 时,Iterparse 返回空的可迭代对象
我正在使用 iterparse 解析一个 xml 文档。
- 预期结果:我看到了一些
end
事件 - 实际结果:什么都没发生
我尝试了几件事:
- 如果我从 xml 中删除命名空间,它工作正常。
- 如果我使用带有前缀的命名空间,
xlmns:t="blah.com"
它也可以正常工作。 - 删除它
tag="foo"
也可以正常工作。
但是,我想同时使用基本标记和默认命名空间。这是 iterparse 的错误吗?我做错了什么吗?
编辑:编辑代码以使其可复制粘贴而不会出现识别错误。
python - lxml iterparse标签参数和内存消耗
我正在处理大型 xml 文件lxml.iterparse
。这很好用,但是随着我的文件最近变大了很多,我发现 iterparse 行为填满了我的记忆。考虑下面的代码,它编写了一个包含 300000 个元素和 300000 个elem
元素和 300000个other_elem
元素的文件:
然后,我使用以下内容仅解析elem
(并且对它们不执行任何操作),同时不时打印内存使用情况:
输出显示内存使用率很低,直到最后突然跳转。当我尝试读取不包含other_elem
s 的文件时,此行为消失。一种较慢的解决方法,它tag
忽略了 iterparse 的参数,而是使用 if 构造来测试它会释放内存,可能是因为它可以el.clear()
对不匹配的元素执行操作。因此,我的问题不是如何解决这个问题,而是为什么 iterparse 在它不必输出的元素上浪费内存,或者可能,我在这里做错了什么?
python - 使用 lxml.iterparse 两次解析相同的内容
我不明白为什么会这样:
这不起作用:
并给我这个错误:
我不能两次解析相同的内容吗?奇怪的是,当我只评论循环而不是整个 iterparse 命令时它正在工作。
我想关闭一些东西吗?
非常感谢
python - python lxml iterparse 在包含命名空间的大文件上失败
我正在尝试按照http://effbot.org/zone/element-iterparse.htm#incremental-parsing中的说明解析大文件(>100mb)
但是如果文件包含命名空间,lxml 会失败并出现错误
如果我删除 elem.clear() 效果很好,但会占用大量内存。xml文件示例
lxml 版本是 3.2.0,因为新版本在解析结束后会出现段错误