Выбор XML / XSL lib для Python 2.6.x - PullRequest
1 голос
/ 11 ноября 2009

В настоящее время у меня есть 2 варианта, LXML и libXML2 , которые, похоже, работают. Я попытался сравнить оба, в частности, для анализа строки памяти и файлов в XML, а также для импорта таблиц стилей XSLT и их применения. Хотя тесты, основанные исключительно на производительности, показывают, что LXML стоит на первом месте (особенно с применением таблиц стилей), libxml2, по-видимому, использовался как стандарт по умолчанию для многих других языков. Кроме того, во время синтаксического анализа LXML, похоже, испытывает некоторые трудности с заменой сущностей.

Мой вопрос в первую очередь таков: кто-нибудь успешно использовал LXML на производстве и какие у вас остались впечатления?

1 Ответ

2 голосов
/ 12 ноября 2009

Я использовал LXML и был очень впечатлен. Гибкость, обеспечиваемая интерфейсами типа etree-like и objectify, довольно удобна. Мне также нравится тот факт, что у меня не должно быть отдельных текстовых узлов.

Что касается замены сущностей, у меня тоже было несколько проблем, но для меня это было вопросом предоставления парсеру правильных опций при его создании.

Например, если вы пытаетесь загрузить объекты из удаленного DTD, вы можете попробовать что-то вроде:

parser = etree.XMLParser(load_dtd=True, no_network=False)

Флаг no_network по умолчанию равен True и, на мой взгляд, немного нелогичен, но это единственное препятствие, с которым я столкнулся.

...