问题标签 [celementtree]

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 投票
1 回答
780 浏览

python - cElementTree.interparse() 不接受自定义解析器

我使用 ElementTree 在 Python 上解析 XML 文件。我发现 cElementTree 的 C 实现与常规实现相比工作得非常快。但我也发现了构造:

不会工作。你会看到类似的东西:

同时,与 'xml.etree.ElementTree.iterparse' 相同的构造确实有效。

我在解析 XML 文件时使用自定义解析器来保留注释(默认解析器会忽略/删除它)。

有谁知道为什么在 C 实现中它不起作用?当 cElementTree 发布时,'parser' 参数已经在 ElementTree 中。

0 投票
0 回答
1740 浏览

python - 使用 cElementTree 在根元素之前向 xml 添加处理指令

我正在使用cElementTree库来生成 xml 文件。现在我想写.xsl文件以获得更好的可读性。这就是为什么我需要<?xml-stylesheet type="text/xsl" href="style.xsl"?>在第一个标签之前添加。不幸的是,我只能在第一个标签之后放置所需的行:

女巫在逻辑上产生:

我需要的是:

我正在寻找这样的东西,似乎addpreviouscElementTree 中没有方法。

0 投票
1 回答
1158 浏览

python - 使用 Python 高效删除 XML 元素

我正在尝试有效地编辑相当大的 XML 文件(通常为 100-500MB,但最大为 1GB),以删除所有不包含具有给定值的属性的元素的出现。我正在寻找在速度方面执行此操作的最有效方法,同时也不会将大量数据加载到内存中,因为这对于较大的文件来说是一个问题。

使用示例 XML,结构如下所示,其中父元素可以相互嵌套任意次数。

使用上面的示例 XML,我试图删除 ID 不等于“c1”的所有子元素,以给出以下结果:

到目前为止,我想出的最有效的方法是使用 cElementTree iterparse:

以上将在大约 10 秒内处理大小为 100MB 的测试文件,有没有更有效的方法来实现这一点?

0 投票
1 回答
163 浏览

python - 用 lxml 解析 XML,然后用 cElementTree 操作它

我有一个应用程序,它不断地从文件中重新加载大量 XML 数据,然后执行操作,然后写回文件。

事实证明,lxml 库解析和反解析 XML 的速度要快得多,但 cElementTree 对于某些类型的操作要快得多。两者都有几乎相同的 API。

如何使用 lxml 解析 XML 文件,然后使用 cElementTree 对其进行操作?

这是我尝试过的,但是由 lxml 解析方法生成的对象固有地使用它自己的操作方法。

0 投票
1 回答
19030 浏览

python - 使用 ElementTree 修改 XML

我想通过在父标签中添加另一个子标签来修改上述 XML。我正在做这样的事情..

这是修改xml文件的正确方法吗?有更好的办法吗?或者在上面的代码中我还应该注意什么?

0 投票
1 回答
3447 浏览

python - 在使用 ElementTree 解析 XML 时使用命名空间

这是使用 ElementTree 修改 XML的问题

我现在在我的 XML 中有名称空间,并尝试通过“ElementTree”在 Python 中使用名称空间解析 XML 中的答案并获得以下信息。

XML 文件。

在通过“ElementTree”查看使用 Python 中的命名空间解析 XML之后,我的 Python 代码

我得到错误:AttributeError:'NoneType'对象没有属性'findall'

0 投票
1 回答
973 浏览

python - 解析 xml 时对象没有属性“文本”

我正在使用 ElementTree 来解析一个简单的 xml 字符串:

这就是根源。我想要的只是该标签的内容,以转换为 json。“翻译”是 xml 文本。

它看起来很简单,但它抛出了“对象没有属性‘文本’”错误。我究竟做错了什么?

0 投票
3 回答
4584 浏览

python - ElementTree XML 解析和 urllib2.urlopen

我正在使用以下方法打开一个 URL:

并使用response.read(),它给出以下输出:

但是当我想使用 ElementTree 解析它时,如下所示:

给我以下错误信息:

但是当我删除该行时response.read(),代码可以正常工作。我究竟做错了什么?

0 投票
1 回答
1802 浏览

python - python元素树iterparse过滤器节点和子项

我正在尝试使用 elementTree 的 iterparse 函数根据文本过滤节点并将它们写入新文件。我使用 iterparse 因为输入文件很大(100+ MB)

输入.xml

预期输出(文本中包含“电影”或“电影”的所有页面)

当前代码

如何添加正则表达式以根据页面的文本属性进行过滤?

0 投票
1 回答
4480 浏览

python - Iterparse 对象下一个没有属性

我正在解析一个 700mb 的文件,我有以下代码在我的测试文件上运行良好,没有行 context.iter(context) 和 event,elem = context.next()。

但是,当我继续 iterparse 700mb 文件时,它仍然崩溃。读过:

在清除()树时使用 ElementTree.iterparse() 是否应该增加内存使用量?

我相信这是因为我需要清除根目录,但是按照我在上面合并的一些教程后,我不断收到错误消息:

我对 Python 还是很陌生,我无法弄清楚为什么会发生这种情况,据我所知,我与示例一致。