微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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”的父级.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。