我有一个应用程序,它不断地从一个文件中重新加载大量的XML数据,然后执行操作,然后写回文件。
事实证明,lxml库用于解析和不解析XML要快得多,但是对于某些类型的操作,cElementTree要快得多。两者都有几乎相同的API。
如何用lxml解析XML文件,然后使用cElementTree操作它?
这就是我尝试过的,但是lxml解析方法生成的对象本身就使用了它自己的操纵方法。
import xml.etree.cElementTree as ET
from lxml import etree as lxmlET发布于 2014-07-09 10:32:50
这个问题也许相当于Python:“我的朋友有一辆快车,我只有一辆旧车,我怎么能让我的车跟她的一样快呢?”
我并不是说这是不可能的,但我应该称这样的企业为雄心勃勃或鲁莽的企业,这取决于您的编程技能水平。关键是,正如您已经发现的那样,每个系统都有自己的解析XML的内部表示。
虽然编写代码可以将lxml生成的已解析对象重新创建或包装为ElementTree元素,但它可能会用到( a)首先使用ElementTree进行解析,b)是维护噩梦。
所以,帮你自己一个忙,选择一种技术,然后坚持它(至少对每个单独的程序)。
我还要指出,XML主要是作为一种数据交换语言。您似乎正在使用它作为结构化的数据存储库,这不可避免地会在处理过程中带来巨大的低效,尤其是随着数据量的增加。选择一些更容易接受的表示,然后只将其转换为XML以供其他系统输出和使用,是否更好呢?
https://stackoverflow.com/questions/24650370
复制相似问题