Я пытаюсь извлечь текст из узла xml, используя Erlang's xmerl_xpath
:
[include "xmerl.hrl"]
{Doc, _}=xmerl_scan:string("<node>Hello World</node>").
[#xmlText{value=Text}]=xmerl_xpath:string("//node/text()", Doc).
Text.
"Hello World"
Отлично работает для этого простого примера. Проблема возникает, когда текст в элементе узла очень большой, скажем, 1 МБ; xmerl_scan: строка работает нормально [т.е. документ анализируется нормально], но попытка извлечь текст приводит к этой ошибке:
{{badmatch,[{xmlText,[{node,1}],1,[],"[large text here]"}]}}
Я подумал, может быть
a) xmerl_scan: строка создает другую структуру документа, когда размер текста очень большой
б) Я достиг некоторого предела для длины строки Эрланга
Есть идеи, что может произойти?
Спасибо