专业人士xml.dom与xml.dom.minidom的缺点

时间:2014-04-22 15:04:55

标签: python xml dom minidom

我试图使用python编写一个xml处理器,从一个使用xml.dom.minidom的教程开始,它提供了一个很好的解析方法xml.dom.minidom.parse()。< / p>

文档似乎说minidom更简单&amp;小于完整的dom。究竟什么是专业人士和专业人士是否使用?

我注意到的一件事是,我不能用xml.dom替换导入xml.dom.minidom,并期望示例代码按原样工作。例如,xml.dom.parse()不起作用,给出错误&#34; AttributeError:&#39; module&#39;对象没有属性&#39;解析&#34;&#34;。 xml.dom中等效的解析方法是什么?

我尝试做的是遍历xml.dom.minidom.parse()给我的树,并查看每个节点的所有属性/对象,以查看我必须工作的xml文件与在dom树中表示。但是访问与.nodeType相对应的常量(例如xml.dom文档中定义的ELEMENT_NODE)这样简单的事情就是给了我&#34;没有定义&#34;运行时的错误。

如果有人能以正确的方式指出我,那将非常感激。感谢。

1 个答案:

答案 0 :(得分:1)

xml.dom 不是DOM实现;它只是提供了用Python术语访问DOM接口,包括通过getDOMImplementation()函数部分实现Level 3 DomImplementationSource interface

标准库中提供的唯一实现是xml.dom.minidom

ELEMENT_NODE和其他常量是Node interface IDL

的一部分
>>> import xml.dom
>>> xml.dom.Node.ELEMENT_NODE
1

XML DOM是一种相当不灵活且过时的API,专为灵活性较低的编程语言而设计。您可能希望使用ElementTree API代替。标准库中有一个实现,或者您可以安装lxml并获得其他功能。