51 votes

Quelles sont les différences entre lxml et ElementTree?

Quand il s'agit de générer un document XML de données en Python, il y a deux bibliothèques je vois souvent recommandé: lxml et ElementTree

À partir de ce que je peux dire, les deux bibliothèques sont très semblables les uns aux autres. Ils semblent tous deux avoir les mêmes noms de module, des consignes d'utilisation et de fonctionnalité. Même les déclarations d'importation sont assez semblables.

 # Importing lxml and ElementTree
import lxml.etree
import xml.etree.ElementTree

Quelles sont les différences entre l' lxml et ElementTree bibliothèques pour Python?

44voto

Parfait Points 10832

ElementTree est intégré dans le script Python à la bibliothèque standard qui comprend d'autres données, modules de types tels que json et csv. Cela signifie que le module est livré avec chaque d'installation de Python. Pour la plupart des XML normal des opérations, dont la construction d'document arbres et simple de la recherche et de l'analyse de l'élément attributs et des valeurs de nœud, même les espaces de noms, ElementTree est un bon gestionnaire.

Lxml est un module tiers qui nécessite l'installation. Dans beaucoup de façons lxml réellement s'étend ElementTree comme la plupart des opérations dans le module intégré sont disponibles. Au premier chef cette extension est qu' lxml prend en charge à la fois de XPath 1.0 et XSLT 1.0. En outre, lxml peut analyser des documents HTML qui ne sont pas compatibles XML et est donc utilisé pour le web grattage d'opérations et de même que l'analyseur dans BeautifulSoup et moteur dans les Pandas, pandas.read_html(). D'autres utiles, les caractéristiques communes de lxml inclure pretty_print de sortie, objectify, et sax de soutien. Bien sûr aussi, comme un module tiers, des versions avec des fonctionnalités supplémentaires sont facilement accessibles par rapport au standard de la bibliothèque.

2voto

Jason Argo Points 46

Je ne dirais pas que lxml est plus rapide que nous ET à travers le conseil d'administration que les deux modules offrent des tonnes de fonctionnalités. Afin de fournir un peu de contexte, ElementTree prend également en charge XPath, mais en particulier ET dispose d'un unique et utile fonction appelée iterparse() qui refait le document XML comme un objet iterable. Il en résulte beaucoup plus rapide de l'analyse, en particulier pour les gros fichiers XML.

Le ET API elle-même crée des types d'éléments qui sont un hybride entre une liste et un dictionnaire. Cela peut signifier des maux de tête pour ceux qui sont nouveaux pour le module, mais s'asseoir avec elle et vous verrez qu'il est assez souple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X