使用绝对路径查找祖先

Posted

技术标签:

【中文标题】使用绝对路径查找祖先【英文标题】:Finding ancestors using absolute path 【发布时间】:2015-05-22 13:58:14 【问题描述】:

我的情况有点奇怪。我可能不得不编写一些自定义代码,但我想我会在这里发布它,以防万一有解决方案或其他人有类似的问题。

我需要使用绝对路径找到元素的最近祖先。

由于我工作环境的一些限制,我不能使用相对路径。因此,在这种情况下无法访问祖先、前一个、父级等。

例如

<root>
  <section>
    <chapter>
      <p id="1"/>
    </chapter>
  </section>
  <section>
    <chapter>
      <p id="2"/>
    </chapter>
  </section>
  <section>
    <chapter>
      <p id="3"/>
    </chapter>
  </section>
</root>

假设我在 p id="2" 中。我想找到最近的部分祖先。这通常是通过

ancestor::section 甚至是祖先[1]::section

但是,我必须使用绝对路径。我没有可以从中提取的 ID 或任何其他唯一标识符。

我尝试过使用 XPath 之类的

//section[这里的东西]

但我不确定我可以在谓词中添加什么来动态查找当前部分元素。

是否可以使用绝对路径找到最近的祖先?

这是 XPath 1。

【问题讨论】:

【参考方案1】:

你是说

//section[chapter/p/@id="2"]

即。查找包含一个章节的部分,该章节包含一个 id 属性为 2 的p

【讨论】:

不,我没有任何 ID 可供借鉴。示例中的 id 只是为了举例说明。 那你就不走运了。你能把这个部分保存在实现整个东西的代码中的变量中吗?

以上是关于使用绝对路径查找祖先的主要内容,如果未能解决你的问题,请参考以下文章

Linux查找绝对路径 which where

如何在使用查找时列出没有绝对路径的目录中的所有文件及其文件大小

linux怎么通过shell查找到某一个文件的绝对路径

查找Bash脚本的绝对路径

如何获取javascript的绝对路径?

路径的问题