微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理 xsl:evaluate 返回的空序列

如何解决处理 xsl:evaluate 返回的空序列

我正在使用 xsl:evaluate 来获取 XPath 指向的值。

示例代码

<xsl:variable name="input" as="xs:string">
  <xsl:evaluate xpath="$someXPath" context-item="."/>
</xsl:variable>

它工作正常,但如果我传递给 xsl:evaluate 的 XPath 是错误的并且指向任何内容,当它尝试将空值分配给 $input 变量时,我会收到此错误

XTTE0570 不允许空序列作为变量的值 $输入

我也这样试过(在 xsl:evaluate 添加 as="xs:string")

<xsl:variable name="input" as="xs:string">
  <xsl:evaluate xpath="$Variable[@type=$EXnn]/@element" context-item="$Attribut" as="xs:string"/>
</xsl:variable>

但我得到相同类型的错误

Dynamic error in expression {myXPath} called using xsl:evaluate.
  Caused by net.sf.saxon.trans.XPathException: An empty sequence is not allowed as the
  result of the expression {myXPath} evaluated by xsl:evaluate

XPath 不返回任何东西的情况如何处理?

解决方法

如果您将变量键入为 as="xs:string?",它应该可以存储空序列或字符串。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。