首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中的XML处理

Python中的XML处理
EN

Stack Overflow用户
提问于 2008-08-02 03:35:56
回答 10查看 9.9K关注 0票数 82

我将要构建一个项目的一部分,该项目需要构造XML文档并将其发布到web服务,我想用Python完成这项工作,以此作为扩展我的技能的一种方式。

不幸的是,虽然我非常了解.NET中的XML模型,但我不确定Python中的XML模型的优缺点。

有人有在Python中处理XML的经验吗?你建议我从哪里开始呢?我将要构建的XML文件将非常简单。

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2008-08-02 04:01:35

就我个人而言,我在一个以XML为主的项目中尝试过几个内置选项,并最终选择pulldom作为不太复杂的文档的最佳选择。

特别是对于小而简单的东西,我喜欢解析的事件驱动理论,而不是为相对简单的结构设置一大堆回调。Here is a good quick discussion of how to use the API

我喜欢的是:您可以在for循环中处理解析,而不是使用回调。您还会延迟完整解析(“拉”部分),并且仅在调用expandNode()时获得额外的详细信息。这满足了我对“负责任的”效率的一般要求,同时又不牺牲易用性和简单性。

票数 35
EN

Stack Overflow用户

发布于 2008-08-02 15:21:04

ElementTree有一个很好的pythony API。我认为它甚至是Python2.5的一部分

它是用纯libxml2编写的,正如我所说的,非常好,但是如果你最终需要更高的性能,那么lxml会公开相同的API并在幕后使用python。理论上,当你发现你需要它的时候,你可以把它换掉。

票数 33
EN

Stack Overflow用户

发布于 2008-09-16 04:35:28

处理XML通常有3种主要方法: dom、sax和xpath。如果您能够一次将整个xml文件加载到内存中,并且您不介意处理数据结构,并且您正在查看模型的大部分内容,那么dom模型是很好的。如果您只关心几个标记,并且/或者您正在处理大文件,并且可以按顺序处理它们,那么sax模型是非常好的。xpath模型有点类似于这两种模型--您可以选择所需数据元素的路径,但它需要使用更多的库。

如果你想用Python简单明了的打包,minidom是你的答案,但是它很差劲,文档是“这是关于dom的文档,去弄清楚吧”。这真的很烦人。

就我个人而言,我喜欢cElementTree,它是ElementTree的一个更快的(基于c语言的)实现,它是一个类似dom的模型。

我使用过sax系统,在很多方面,它们给人的感觉更像是“巨蟒”,但我通常最终会创建基于状态的系统来处理它们,而这种方式就是疯狂(和bug)。

如果你喜欢研究,我建议你使用minidom,或者如果你想要好的代码,我建议使用ElementTree。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档