Xml xslt节点集与序列

Xml xslt节点集与序列,xml,xslt,xpath,xslt-1.0,xslt-2.0,Xml,Xslt,Xpath,Xslt 1.0,Xslt 2.0,我想知道节点集和序列的区别。为什么序列在XSLT2.0中被认为更好?有人能给我举一个节点集(带有select属性)的例子,以及如何将其转换为序列吗 对于XSLT/XPath 1.0,位置路径返回节点集(),对于XSLT/XPath 2.0,路径表达式()返回项目序列,其中项目可以是节点或原子值。XSLT/XPath 2.0没有节点集,因此我无法提供如何将节点集转换为序列的示例。XSLT 2.0中的序列是XSLT 1.0中节点集的泛化。它们在两个方面有所不同 (a) 它们可以包含节点以外的内容:例

我想知道节点集和序列的区别。为什么序列在XSLT2.0中被认为更好?有人能给我举一个节点集(带有select属性)的例子,以及如何将其转换为序列吗

对于XSLT/XPath 1.0,位置路径返回节点集(),对于XSLT/XPath 2.0,路径表达式()返回项目序列,其中项目可以是节点或原子值。XSLT/XPath 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的东西。部分“$style/df:table/df:Borders/df:top[not(@df:val=“xoxo”)]”是节点集吗?(据我所知)它可以转换为使用序列。这是一个路径表达式,XPath 1.0选择一组节点,XPath 2.0选择一组节点。我没有得到您想要转换的内容,如果您使用XPath或XSLT 2.0,那么您没有任何节点集,只有节点序列。我想更改它,以便在XSLT2.0中提供相同的输出。我说得通吗-/我不明白为什么
1
片段在使用XSLT 2.0处理器运行时与使用XSLT 1.0处理器运行时会产生不同的结果。你有不同的结果吗?对不起,我不明白你想要什么。也许迈克尔·凯的回答有助于澄清你的理解。我所看到的提高性能的唯一建议(如果XSLT处理器的优化器不在幕后执行)是使用union运算符和sequence运算符重写表达式,例如,
,其中您知道要首先处理所有属性节点,然后,所有子节点都可以在XSLT2.0中重写为
。但是对于单个路径,我不知道有什么改变可以提高性能。