Ошибка Xquery в WebHarvest - PullRequest
       14

Ошибка Xquery в WebHarvest

0 голосов
/ 12 декабря 2010

Я использую WebHarvest для анализа некоторых HTML.Я получаю следующую ошибку в идее WebHarvest для следующей функции, и я не понимаю, в чем дело.Я пытаюсь создать функцию, которая обрезает строку.

Ошибка :

Ошибка выполнения выражения XQuery (Xquery = [объявить переменную $ xqsource external;let $ result: = normalize-space ($ xqsource) return $ result])!

Edit2: журнал сообщает о следующей ошибке SAX:

[...] Причина: org.xml.sax.SAXParseException: содержимое не разрешено в прологе

Я не понимаю, что это значит в этом случае.

Функция параметры: sourceString, строка для обрезки

<function name="trim">
    <return>
        <xquery>
            <xq-param name="xqsource">
                <var name="sourceString" />
            </xq-param>
            <xq-expression><![CDATA[
                declare variable $xqsource external;

                let $result := normalize-space($xqsource)
                    return 
                     $result
                ]]>
            </xq-expression>
        </xquery>
    </return>
</function>

Редактировать: sourceString - строка, состоящая из буквенно-цифровых символов, новых строк и пробелов, например

"блабла - бла2

"

1 Ответ

1 голос
/ 12 декабря 2010

тип по умолчанию для xq-param: node() (cf manual ).Поэтому WebHarvest пытается проанализировать содержимое вашей переменной как XML (SAXParseException является ошибкой синтаксического анализа XML, а не конкретной ошибкой XQuery).

Вы должны добавить объявление типа string в свой параметр:

<xq-param name="xqsource" type="string">
  <var name="sourceString" />
</xq-param>

Это помогает?

...