ElementTree更加易于使用,因为它(基本上)将XML树表示为列表的结构,而属性则表示为字典。
ElementTree的XML树所需的内存比DOM少得多(因此更快),并且via的解析开销
iterparse与SAX相当。此外,
iterparse返回部分结构,并且您可以在解析过程中通过在处理结构后立即将其丢弃来使内存使用保持恒定。
与完善的XML库相比,Python
2.5中的ElementTree仅具有很小的功能集,但对于许多应用程序来说已经足够了。如果您需要验证解析器或完整的XPath支持,则可以使用lxml。很长一段时间以来,它一直很不稳定,但是从2.1开始我就没有任何问题。
ElementTree不同于DOM,在DOM中,节点可以访问其父级和同级。处理实际文档而不是数据存储也很麻烦,因为文本节点不被视为实际节点。在XML代码段中
<a>This is <b>a</b> test</a>
该字符串
test将是所谓
tail的element
b。
通常,我建议使用ElementTree作为使用Python进行的所有XML处理的默认设置,并建议使用DOM或SAX作为特定问题的解决方案。



