xml – 如何使用XPath在祖先或自身节点列表中查找最近的祖先

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

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

当我使用XPath时,假设c节点是$currentNode

<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节点并不总是正好位于上下文之上,只是在某处…

任何建议赞赏!

问候
亚历克斯

解决方法

我想你会得到一组有序的节点,从父节点到祖先节点.

尝试使用$currentNode / ancestor-or-self :: a [1]来获取c att =“val”的父级.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念