Я использую Altova XMLSpy, и у меня возникают проблемы с функцией Xpath tokenize()
, использующей Xpath 2.0.
У меня есть XML, содержащий этот тег, содержащий нужное мне значение:
<REF TyCd="INVREF2">VVQFAR CIG ZA5180AAB6</REF>
Это Xpath, который я сделал для получения нужного мне значения:
if (index-of(tokenize(/InvoiceMsg/INVOICE/REFS/REF[@TyCd='INVREF2'], ' '), 'CIG') > 0)
then
tokenize(/InvoiceMsg/INVOICE/REFS/REF[@TyCd='INVREF2'], ' ')[index-of(tokenize(/InvoiceMsg/INVOICE/REFS/REF[@TyCd='INVREF2'], ' '), 'CIG') + 1]
else
''
Ошибка возникает при третьем использовании функции tokenize()
и говорит:
Неожиданный элемент 'atomi c' xs: string Подробности XPTY0020: Элемент контекста в шаге оси должен быть узлом
Более того, если я использую фиксированную строку, как это
tokenize(/InvoiceMsg/INVOICE/REFS/REF[@TyCd='INVREF2'], ' ')[index-of(tokenize('VVQFAR CIG ZA5180AAB6', ' '), 'CIG') + 1]
ошибка не возникает.
Вопрос: почему ошибка возникает только там (а не в операторе if, например) и что я могу сделать?