【发布时间】:2020-03-16 15:16:47
【问题描述】:
我正在使用 Altova XMLSpy,但在使用 Xpath 2.0 的 Xpath tokenize() 函数时遇到问题。
我有一个包含此标记的 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()函数时出现错误,说:
意外的“原子”项目 xs:string 细节 XPTY0020:轴步骤中的上下文项必须是节点
此外,如果我使用固定字符串,像这样
tokenize(/InvoiceMsg/INVOICE/REFS/REF[@TyCd='INVREF2'], ' ')[index-of(tokenize('VVQFAR CIG ZA5180AAB6', ' '), 'CIG') + 1]
没有发生错误。
问题是:为什么错误只发生在那里(而不是在 if 语句中,例如),我该怎么办?
【问题讨论】:
标签: xml xpath xpath-2.0 altova xmlspy