LINUX.ORG.RU

[libxml] Как включить XML_PARSE_HUGE ?


0

1

Распаршиваю достаточно большую строку в питоне с помощью libxml и выдает ошибку:

len(x)
792548

etree.fromstring(x)
.....
блабла
......
lxml.etree.XMLSyntaxError: Excessive depth in document: 256 use XML_PARSE_HUGE option, line 1282, column 2

Где включить эту опцию XML_PARSE_HUGE, даже через гугл ниче не нагугливается

★★★★★
Ответ на: комментарий от kulti

Однако не так просто этот самый libxml пересобрать. Затырил его из git, сперва долго искал как сделать ./configure, но файла этого небыло, хотя в README черным по белому - ./configure && make && make install. Нашел файла configure.in, оказывается его надо прогнать через autoconf, чтобы появился configure.

Прогнал - получил ошибку:

configure.in:4: error: possibly undefined macro: AM_CONFIG_HEADER
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.in:51: error: possibly undefined macro: AM_INIT_AUTOMAKE
configure.in:72: error: possibly undefined macro: AM_C_PROTOTYPES
configure.in:75: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL
configure.in:76: error: possibly undefined macro: AM_PROG_LIBTOOL
configure.in:92: error: possibly undefined macro: AM_CONDITIONAL
configure.in:494: error: possibly undefined macro: AC_MSG_RESULT
configure.in:516: error: possibly undefined macro: AC_TRY_COMPILE2
configure.in:537: error: possibly undefined macro: AC_MSG_WARN

А еще

man autoconf | grep m4_pattern_allow

молчит, что еще с какой опцией пересобрать надо? :)

З.ы. посмотрел, что libxml2 - это прога гнумавская, сразу вспомнилось, что не мало людей ругалось как приятно гнум из исходников собирать.

Siado ★★★★★
() автор топика
Ответ на: комментарий от Siado

Затырил его из git, сперва долго искал как сделать ./configure, но файла этого небыло, хотя в README черным по белому - ./configure && make && make install.

configure-скрипту не место в VCS, точно так же как там не место, например, готовым бинарникам.

Нашел файла configure.in, оказывается его надо прогнать через autoconf, чтобы появился configure.

Надо было так:

./autogen.sh

P.S. Зачем вообще его из git'а брать? Скачал бы тарболл...

Deleted
()
Ответ на: комментарий от Deleted

Обана, ./autogen.sh сгенерился, спасибо.
Только вот один фиг в упор не вижу, куда эту опцию XML_PARSE_HUGE вписывать.


P.S. Зачем вообще его из git'а брать? Скачал бы тарболл...


А из жита один фиг все сжато + всегда можно накатить более старую версию.

Siado ★★★★★
() автор топика
Ответ на: комментарий от Siado

Только вот один фиг в упор не вижу, куда эту опцию XML_PARSE_HUGE вписывать.

Судя по тому, что говорит гугль, пересобирать вообще ничего не надо. Достаточно передать флаг XML_PARSE_HUGE в функцию xmlCtxtUseOptions().

P.S. libxml никогда не использовал.

Deleted
()
Ответ на: комментарий от Siado

А, я не заметил, что ты это из пайтона делаешь.

Гугль что-то говорит про параметр huge_tree в lxml.

Deleted
()
Ответ на: комментарий от Deleted

Тут выходит такое дело, что lxml использует libxml2 и sax в своем черном деле. Так вот походу в libxml2 где-то этот параметр включить надо. Гугл ниче конкретного не говорит, нагугливал правда несколько патчей libxml2 для федорообразных дистров.

Siado ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.