有没有人知道一份能够改变上下文节点的XSLT指令/函数列表?
例如,像for-each
这样的指令是其中之一。
明显改变上下文的XSLT 2.0指令包括for-each
、apply-templates
、for-each-group
和analyze-string
。但是还有一些其他指令,例如xsl:sort
和xsl:key
。
在XPath中,操作符/
和[]
可以改变上下文,但没有能够更改上下文的函数。
xsl:iterate
、xsl:source-document
和 xsl:merge
。 - Michael KayXSLT 1.0 中只有两个东西会改变上下文,而且它们都不是函数。这两个东西分别是:
<xsl:apply-templates select='some-test'/>
这将导致选定的节点被处理,每个节点在处理时都成为上下文节点。
以及
<xsl:for-each select='some-test'/>
<xsl:for-each-group/>
xsl:apply-templates
和xsl:for-each
稍微复杂地设置上下文节点).
意义的指令。 - Flynn1179xsl:apply-templates
本身不会改变上下文。它选择要处理的节点。处理模板本身设置当前节点。但是,它确实会导致上下文发生变化,这就是我想表达的重点 :) - Nic Gibson