Уведомления

Группа в Telegram: @pythonsu

#1 Июль 28, 2006 09:31:44

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

XML в Python

Какой лучше библиотекой пользоваться при работе с XML? Я имею в виду xmllib и лучше воспользоваться другой не из дистрибутива?



Офлайн

#2 Июль 28, 2006 12:54:23

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

XML в Python

Зависит от. Как минимум, стоит определиться, DOM или SAX



Офлайн

#3 Июль 28, 2006 13:22:11

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

XML в Python

xmllib ситается устаревшей библиотекой. Парсер в ней для разбора xml использует рег. выражения, что делает
ее доволбно медленной(если попытаешся импортировать ее, то получишь DeprecationWarning). Для работы с xml надо пользоватся sax и dom парсерами из библиотеки xml(В python 2.5 она переименована в xmlcore), она в качестве backend`a использует expat написанный на C.



Отредактировано (Июль 28, 2006 13:25:05)

Офлайн

#4 Июль 28, 2006 14:38:07

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2250
Репутация: +  40  -
Профиль   Отправить e-mail  

XML в Python

ElementTree юзай, встроенные и по скорости уступают и по возможности, темболее этот модуль уже в 2.5 будет

Офлайн

#5 Июль 28, 2006 16:15:34

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

XML в Python

slav0nic
ElementTree юзай, встроенные и по скорости уступают и по возможности, темболее этот модуль уже в 2.5 будет
Как я упомянул выше, модуль xml использует expat, а expat - один из лучших и самых быстрых sax парсеров, фактически его используют также в кач-ве backend`a xml модули PHP, Perl, гномовских библиотек и т.д. Так что я СИЛЬНО СОМНЕВАЮСЬ в том что ElementTree действительно выигрывает по скорости у xml.sax или xml.dom. Но все это ИМХО ;)



Офлайн

#6 Июль 29, 2006 10:17:19

OlDer
От:
Зарегистрирован: 2006-07-19
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

XML в Python

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 и делает по скорости всех ;-)



Офлайн

#7 Июль 29, 2006 17:37:39

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2250
Репутация: +  40  -
Профиль   Отправить e-mail  

XML в Python

ну всегда есть выбор между удобвством и скоростью) каждый выбиарет своё

Офлайн

#8 Июль 29, 2006 18:11:57

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

XML в Python

Если важна скорость, стоит глянуть
http://www.reportlab.org/pyrxp.html



Офлайн

#9 Июль 31, 2006 12:36:06

pyOut
От:
Зарегистрирован: 2006-07-16
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

XML в Python

А есть ли в этих библиотеках поддержка XSL?



Офлайн

#10 Авг. 25, 2006 12:40:06

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

XML в Python

Результаты тестирования различных модулей для работы с xml: http://effbot.org/zone/celementtree.htm



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version