gpt4 book ai didi

xml - 有没有更好的方法获取 XPath 查询结果的父节点?

转载 作者:数据小太阳 更新时间:2023-10-29 01:38:10 24 4
gpt4 key购买 nike

有这样的标记:

<div class="foo">
<div><span class="a1"></span><a href="...">...</a></div>
<div><span class="a2"></span><a href="...">...</a></div>
<div><span class="a1"></span>some text</div>
<div><span class="a3"></span>some text</div>
</div>

我有兴趣获得所有 <a>some text 如果相邻 span是类 a1 .所以在整个代码的最后我的结果应该是 <a>从第一个divsome text从第三个。如果 <a> 会很容易和 some text在里面spandiv会有 class属性,但没有运气。

我现在正在做的是寻找spana1类:

//div[contains(@class,'foo')]/div/span[contains(@class,'a1')]

然后我得到它的 parent 并做另一个 query()将该父节点作为上下文节点。这看起来远非高效,所以问题很明显,是否有更好的方法来实现我的目标?


答案附录

根据@MarcB accepted answer ,正确的查询是:

//div[contains(@class,'foo')]/div/span[contains(@class,'a1')]/..

但对于 <a>使用可能会更好:

//div[contains(@class,'foo')]/div/span[contains(@class,'a1')]/../a

获取 <a>而不是它的容器。

最佳答案

xpath 查询的优点在于您基本上可以将它们视为文件系统路径,因此只需拥有

//div[contains(@class,'foo')]/div/span[contains(@class,'a1')]/..
^^

将找到 .foo 节点下的所有 .a1 节点,然后向上移动一级到 a1 节点的父节点。

关于xml - 有没有更好的方法获取 XPath 查询结果的父节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12875203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com