【发布时间】:2014-10-10 12:32:49
【问题描述】:
我目前正在尝试使用 XSLT 转换更大的 XML 文档堆栈,并且正在使用 shell 脚本来执行此操作。但是,我收到以下错误:
唯一可以通过类型检查的值是一个空序列。 contains() 的第一个参数的必需项类型是 xs:string; 提供的值具有项目类型 xs:anyURI
当我在 xsl 中查找相应的行时,发现这可能是由于另一个脚本中定义的变量造成的。它的定义是这样的:
<xsl:variable name="crturi" select="document-uri(/)"/>
那么我的错误消息是否意味着我需要将 $crturi 的值转换为 thr 字符串格式才能进行处理?
【问题讨论】:
-
您使用的是什么产品?它看起来像一条撒克逊错误消息:也许它是在实施 URI 到字符串提升之前的撒克逊旧版本?
-
感谢您的回复。我不确定当时我使用的是哪个 Saxon 版本,因为我找不到要查找的命令,但由于我下载文件夹中的最新版本是 HE 9.5.1.6,我想我安装了那个。不过,这似乎只是一天的问题,因为现在一切正常。
-
要找出您正在使用的 Saxon 版本,请在命令行上使用 -t 选项运行,或者将
system-property('xsl:product-version')的结果放在消息中,或者在转换输出中的注释节点中. -
谢谢。我使用的是 Saxon-HE 9.5.1.6J 版本。我们目前正在尝试重现错误消息,但不确定是什么原因造成的。如果我们设法写一个最小的例子,我会再次发布。
标签: string xslt uri transformation