这个错误通常发生在使用Altova XMLSpy的XPath表达式中使用了tokenize()函数时,函数的返回值类型不匹配的情况下。
要解决这个问题,您可以采取以下步骤:
以下是一个示例代码,展示如何使用tokenize()函数并处理其返回值类型不匹配的情况:
Hello, World!
string-join(tokenize(/root/text, ', '), '; ')
上述XPath表达式使用tokenize()函数将文本节点的内容按逗号进行分割,并使用string-join()函数将结果用分号连接起来。如果输入的文本节点内容为"Hello, World!",则预期的输出为"Hello; World!"。
如果您在Altova XMLSpy中使用上述XPath表达式时遇到了"Unexpected 'atomic' item xs:string"错误,您可以尝试修改表达式的返回值类型匹配,如下所示:
string-join(for $token in tokenize(/root/text, ', ') return string($token), '; ')
上述修改使用了一个for循环来遍历tokenize()函数的结果,并使用string()函数将每个结果转换为字符串类型。然后,使用string-join()函数将转换后的结果用分号连接起来。
希望这些解决方法能够帮助您解决问题。如果问题仍然存在,请尝试参考XMLSpy的文档或联系Altova支持团队以获取更多帮助。