什么是XSLT中的?

时间:2010-07-27 05:33:04

标签: xslt xpath

XSLT中的//是什么? (例如$currentPage//node

2 个答案:

答案 0 :(得分:8)

  

xslt中的//例如   ($当前第//节点)

在XPath中缩写:

  

// is short for /descendant-or-self::node()/

xslt指令的某些属性(例如select属性)的值必须是XPath表达式。

因此,

($currentPage//node)

代表

($currentPage/descendant-or-self::node()/node)

这将选择名为node的所有元素,这些元素是包含在变量$currentPage中的节点的子节点,或者是包含在变量$currentPage中的节点的后代。

请注意在提供的表达式node()中是 node-test (它选择descendant-or-self::轴上的所有节点类型,例如作为元素,文本节点,注释和处理指令。

另一方面,somePath/nodesomePath/child::node的简写,只选择名为node的元素作为上下文节点的子元素。

我强烈建议您不要将名称node用于元素,以避免这种混淆。

答案 1 :(得分:4)

看起来它是 XPath 的一部分,可以在XSLT中使用它来搜索树,以查找与路径匹配的给定节点。这是与CSS选择器类似的技术。

双斜杠可以在任何深度进行后代搜索。

例如:

elementa//elementb

将匹配任何elementa元素,它是elementa元素的后代,即使其间存在其他级别,例如:

<elementa>
  <someelement>
    <elementb>
    </elementb>
  </someelement>
</elementa>