Я знаю немного dom и хотел бы узнать о ElementTree. Python 2.6 имеет несколько более старую реализацию ElementTree, но все еще применимый. Однако похоже, что это идет с двумя различными классами: xml.etree. ElementTree и xml.etree.cElementTree. Кто-то был бы так добр для просвещения меня с их различиями?Спасибо.
Это та же библиотека (тот же API, те же функции ), но ElementTree реализован на Python, а cElementTree реализован на C.
Если вы можете, используйте реализацию C, потому что она оптимизирована для быстрого синтаксического анализа и низкого использования памяти и в 15-20 раз быстрее, чем реализация Python.
Используйте версию Python, если вы находитесь в ограниченной среде (загрузка библиотеки C не разрешена).
Из http://effbot.org/zone/celementtree.htm :
Модуль cElementTree представляет собой реализацию C API ElementTree, оптимизированный для быстрого синтаксического анализа и низкого использования памяти. В типичных документах cElementTree в 15-20 раз быстрее, чем версия ElementTree для Python, и использует в 2-5 раз меньше памяти
ElementTree реализован на python, в то время как cElementTree реализован на C. Таким образом, cElementTree будет быстрее, но также недоступен там, где у вас нет доступа к C, например, в Jython или IronPython или на Google App Engine.
Функционально они должны быть эквивалентны.