【问题标题】:Is there a way to specify the lowest ancestor in XPath?有没有办法在 XPath 中指定最低的祖先?
【发布时间】:2019-07-30 22:06:20
【问题描述】:

ancestor 根据https://www.w3schools.com/xml/xpath_axes.asp 表示Selects all ancestors (parent, grandparent, etc.) of the current node

有没有办法指定最低的祖先而不是所有的祖先?

【问题讨论】:

  • 不确定我是否理解。 “最低”的祖先总是根/
  • @PaulProgrammer,我相信大多数人会认为/ 是“最高”的祖先,而parent::node() 是“最低的”。 (计算机科学中的树传统上是用根高于叶子的方式绘制的。此外,文档排序强化了文档底部“低于”顶部的概念。)
  • 最深、最近等...

标签: xml xpath


【解决方案1】:

最低的祖先将是父代,由..parent::node() 给出。

最高祖先是根节点,由/给出;或者,如果您想要最高的祖先元素:/*

另见What is the difference between root node, root element and document element in XML?

请注意,如果您想选择满足谓词的最低祖先,请将 [1] 附加到谓词 - 祖先从起点向上排序,而不是从根向下排序。例如,

//e[@id="e1"]/ancestor::*[@class][1]

将选择具有@class 属性的e1 e 元素的最低祖先。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2014-05-24
    • 2019-05-03
    • 1970-01-01
    相关资源
    最近更新 更多