我想知道节点集和序列是如何不同的。为什么在xslt 2.0中序列被认为更好?有人可以给我一个节点集(带有select属性)的示例,以及如何将其转换为序列?
答案 0 :(得分:5)
XSLT 2.0中的序列是XSLT 1.0中节点集的概括。它们有两种不同的方式
(a)它们可以包含节点以外的东西:例如,你可以有一系列字符串或整数
(b)它们可以包含重复项,并且可以按任何顺序包含节点(节点集是无序的)。
由于XSLT 1.0只有节点集的简单原因,并且XSLT 2.0只有序列,所以不可能将节点集转换为序列:像/a/b
这样的表达式在XSLT 1.0中返回一个节点-set,将在XSLT 2.0中返回一个序列。
(如果需要,您可以使用术语“node-set”来指代完全由节点组成的任何序列,其中没有重复项,并且节点始终按文档顺序排列。但该术语2.0规范不使用。)
答案 1 :(得分:2)
使用XSLT / XPath 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没有节点集,因此我无法提供有关如何将节点集转换为序列的示例。