7

我有一个包含重复元素的结构,如下所示:

<a>
  <b>
    <a>
    </a>
  </b>
  <a>
    <b>
       <a>
         <c att="val" />
       </a>
    </b>
  </a>
</a>

假设 c-node 是 $currentNode,当我使用 XPath 时

<xsl:value-of select="($currentNode/ancestor-or-self::a)" />

我得到一个与表达式匹配的节点的无序列表。我需要的是始终让节点最靠近树,如最深的分支或最高的@level。

不幸的是,我不能像这样使用 XPath 2 max-function:

<xsl:value-of select="($currentNode/ancestor-or-self::a)[max(@level)]" />

请注意,最近的 a 节点并不总是正好在上下文之上,只是在上面的某个地方......

任何建议表示赞赏!

问候亚历克斯

4

1 回答 1

8

我认为您会得到一组有序的节点,从父节点到祖先节点。

尝试$currentNode/ancestor-or-self::a[1]获取 c att="val" 的父级。

于 2013-03-26T19:33:24.133 回答