Найти - Пользователи
Полная версия: XML в Python
Начало » Python для экспертов » XML в Python
1
pyOut
Какой лучше библиотекой пользоваться при работе с XML? Я имею в виду xmllib и лучше воспользоваться другой не из дистрибутива?
j2a
Зависит от. Как минимум, стоит определиться, DOM или SAX
slivlen
xmllib ситается устаревшей библиотекой. Парсер в ней для разбора xml использует рег. выражения, что делает
ее доволбно медленной(если попытаешся импортировать ее, то получишь DeprecationWarning). Для работы с xml надо пользоватся sax и dom парсерами из библиотеки xml(В python 2.5 она переименована в xmlcore), она в качестве backend`a использует expat написанный на C.
slav0nic
ElementTree юзай, встроенные и по скорости уступают и по возможности, темболее этот модуль уже в 2.5 будет
slivlen
slav0nic
ElementTree юзай, встроенные и по скорости уступают и по возможности, темболее этот модуль уже в 2.5 будет
Как я упомянул выше, модуль xml использует expat, а expat - один из лучших и самых быстрых sax парсеров, фактически его используют также в кач-ве backend`a xml модули PHP, Perl, гномовских библиотек и т.д. Так что я СИЛЬНО СОМНЕВАЮСЬ в том что ElementTree действительно выигрывает по скорости у xml.sax или xml.dom. Но все это ИМХО ;)
OlDer
slivlen
slav0nic
ElementTree юзай, встроенные и по скорости уступают и по возможности, темболее этот модуль уже в 2.5 будет
Как я упомянул выше, модуль xml использует expat, а expat - один из лучших и самых быстрых sax парсеров, фактически его используют также в кач-ве backend`a xml модули PHP, Perl, гномовских библиотек и т.д. Так что я СИЛЬНО СОМНЕВАЮСЬ в том что ElementTree действительно выигрывает по скорости у xml.sax или xml.dom. Но все это ИМХО ;)
cElementTree использует тот же самый expat. Но, на самом деле скорость парсера не так уж и важна в 90% случаев. Продуманность и удобство API - вот где собака порылась (с). Попробуйте когда нибудь поработать с ElementTree и вас будет тошнить уже на строчке “import xml…” :-)
Причем в 80% случаев даже скорости cElementTree не нужно - и тогда лучше использовать pure python ElementTree.
А для остальных 10% - есть lxml который реализует EtementTree API поверх libxml2 и делает по скорости всех ;-)
slav0nic
ну всегда есть выбор между удобвством и скоростью) каждый выбиарет своё
j2a
Если важна скорость, стоит глянуть
http://www.reportlab.org/pyrxp.html
pyOut
А есть ли в этих библиотеках поддержка XSL?
slivlen
Результаты тестирования различных модулей для работы с xml: http://effbot.org/zone/celementtree.htm
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB