XSLT问题:'/'的第一个操作数所需的项目类型是node();提供的值 xs:base64Binary 是一个原子值

XSLT problem: The required item type of the first operand of '/' is node(); the supplied value xs:base64Binary is an atomic value

所以我在 XSL 转换方面遇到了奇怪的问题。

我正在尝试从文件夹中的文件中获取不同的值。

然后我将每个不同值的各种元素添加到 $objects:<xsl:for-each select="distinct-values($something)"/>

我之前测试过转换,结果很好。现在我收到错误消息“'/' 的第一个操作数的必需项类型是 node();提供的值 xs:base64Binary("AAAAAUJ1ZDEAB ...=") 是一个原子值。”。 =14=]

我该如何解决这个问题?我已经阅读了很多关于这个问题的文章,但我的样式表无法正常工作。

我在 Oxygen XML 编辑器中使用 Saxon-PE 9.9.1.7。样式表是用 XSLT 2.0 编写的。

提前致谢!

我的猜测是 ../../../../data/objects 是一个目录,其中包含无法识别 XML 的文件,因此被视为二进制值。 Saxon 用于检测集合中文件内容类型的规则非常复杂且有点随意,但是您可以通过多种方式将选择限制为仅包含 XML 个文件。