XSLT中的//
是什么? (例如$currentPage//node
)
答案 0 :(得分:8)
xslt中的//例如 ($当前第//节点)
在XPath中缩写:
xslt指令的某些属性(例如select
属性)的值必须是XPath表达式。
因此,
($currentPage//node)
代表
($currentPage/descendant-or-self::node()/node)
这将选择名为node
的所有元素,这些元素是包含在变量$currentPage
中的节点的子节点,或者是包含在变量$currentPage
中的节点的后代。
请注意在提供的表达式node()
中是 node-test (它选择descendant-or-self::
轴上的所有节点类型,例如作为元素,文本节点,注释和处理指令。
另一方面,somePath/node
是somePath/child::node
的简写,只选择名为node
的元素作为上下文节点的子元素。
我强烈建议您不要将名称node
用于元素,以避免这种混淆。
答案 1 :(得分:4)
看起来它是 XPath 的一部分,可以在XSLT中使用它来搜索树,以查找与路径匹配的给定节点。这是与CSS选择器类似的技术。
双斜杠可以在任何深度进行后代搜索。
例如:
elementa//elementb
将匹配任何elementa元素,它是elementa元素的后代,即使其间存在其他级别,例如:
<elementa>
<someelement>
<elementb>
</elementb>
</someelement>
</elementa>