l xml .etree.SerialisationError: IO_ENCODER ERROR при использовании cabby / libtaxii - PullRequest
0 голосов
/ 24 февраля 2020

Компания, в которой я работаю, имеет производственный сервер TAXII (использующий STIX 1.1.1), который не совсем работает с некоторыми реализациями клиентских TAXII наших клиентов, поэтому я разрабатываю тестовый сервер, чтобы попытаться разработать некоторые из них. из ошибок. Для этого я одновременно извлекал информацию с нашего сервера TAXII с помощью cabby или просто извлекал файлы STIX / XML непосредственно из нашего (не TAXII) API и помещал их непосредственно в бэкэнд тестового сервера. Одной из проблем, с которыми я сталкиваюсь, является использование cabby как на рабочем, так и на тестовом сервере TAXII, - эта ошибка в библиотеке python l xml, которая является зависимой от Cabby (это только нижняя часть большого стека). trace)

taxii_xml = response_message.to_xml(pretty_print=True)
  File "/usr/local/lib/python3.6/dist-packages/libtaxii/common.py", line 239, in to_xml
    return etree.tostring(self.to_etree(), pretty_print=pretty_print)
  File "src/lxml/etree.pyx", line 3435, in lxml.etree.tostring
  File "src/lxml/serializer.pxi", line 139, in lxml.etree._tostring
  File "src/lxml/serializer.pxi", line 199, in lxml.etree._raiseSerialisationError
lxml.etree.SerialisationError: IO_ENCODER

Я искал, пытаясь найти, что в XML вызывает эту ошибку, но я не добился большого успеха. Попытка отфильтровать, возможно, нежелательные символы из XML была частично успешной, но я также не совсем уверен, что это является причиной этой проблемы. У кого-нибудь есть хорошее объяснение того, что именно вызывает эту ошибку в l xml, я предполагаю, что это как-то связано с форматированием XML, но выяснение того, какие добрые причины неправильного форматирования, было бы чрезвычайно полезно

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Скорее всего, из-за ошибки xml, введенной в l xml 4.4.2, см. https://bugs.launchpad.net/lxml/+bug/1873306

0 голосов
/ 22 апреля 2020

Вы случайно не перенесли свою систему на более новую?

У старой системы есть эта ошибка с al xml 4.5 в нашем случае.

Откат до 2.3 исправил ошибку:

sudo su
pip uninstall lxml
apt-get install libxml2-dev libxslt1-dev
pip install lxml==2.3
...