XSLT:node()? vs node()*

时间:2017-12-04 22:47:05

标签: xml xslt xslt-2.0

我已经在XSLT中处理了一些遗留代码,以便用更广泛使用的语言替换它,并且我已经找到了一些我无法找到参考的东西。

之间的区别是什么
<xsl:variable name="following_actions" as="node()*">

<xsl:variable name="following_actions" as="node()?">

我习惯看到星号版本给我一个符合xsl:variable块体内指定条件的记录列表,但我不认为我已经看过了之前的问号版本。

直接相关的补救参考被愉快地接受。我相信我正在使用XSLT 2.0,FWIW。

1 个答案:

答案 0 :(得分:1)

与正则表达式一样,?*+指定了可选性和多样性:

  • node()表示1个节点。
  • node()?表示0或1个节点。
  • node()+表示一个或多个节点。
  • node()*表示0个或更多节点。