我想知道节点集和序列有何不同。为什么序列在 xslt 2.0 中被认为更好?有人可以给我一个节点集(带有选择属性)的示例以及如何将其转换为序列吗?
XSLT 2.0 中的序列是 XSLT 1.0 中节点集的概括。它们在两个方面有所不同
(a)它们可以包含节点以外的内容:例如,您可以拥有一系列字符串或整数
(b) 它们可以包含重复项,并且可以包含任何顺序的节点(节点集是无序的)。
无法将节点集转换为序列,原因很简单,XSLT 1.0 只有节点集,而 XSLT 2.0 只有序列:像 /a/b
这样的表达式在 XSLT 1.0 中返回节点集,将在 XSLT 2.0 中返回序列。
(如果需要,可以使用术语"节点集"来指代完全由节点组成的任何序列,其中没有重复项,并且节点始终按文档顺序排列。但 2.0 规范没有使用该术语。
1.0 时,位置路径返回节点集 (http://www.w3.org/TR/xpath/#node-sets),使用 XSLT/XPath 2.0,路径表达式 (http://www.w3.org/TR/xpath20/#id-path-expressions) 返回一系列项,其中项可以是节点或原子值。XSLT/XPath 2.0 没有节点集,因此我无法提供有关如何将节点集转换为序列的示例。