gpt4 book ai didi

html - 某个兄弟之前的所有子元素的 XPath?

转载 作者:数据小太阳 更新时间:2023-10-29 02:44:07 26 4
gpt4 key购买 nike

我有一个如下所示的 HTML 文件:

<r>
<ab id = "1">
<event/>
<li>a</li>
<li>b</li>
<action/>
<li>a2</li>
<li>b2</li>
<action/>
</ab>
<ab id = "2">
<event/>
<li>a3</li>
<li>b3</li>
<action/>
</ab>
</r>

我想做的是首先在 html 文件中找到所有事件节点,然后为每个事件节点找到所有后续的兄弟节点,直到它遇到操作节点。所以,对于第一个事件节点,结果应该是

<li>a</li>
<li>b</li>

对于第二个事件节点,结果应该是

<li>a3</li>
<li>b3</li>

第一步,我用了

/r/ab/event

并得到了想要的结果,然而,我在第二步中卡住了并感到困惑,我尝试使用

following-sibling::*[following-sibling::action[1]]

它给了我结果

<li>a</li>
<li>b</li>
<action/>
<li>a2</li>
<li>b2</li>

对于第一个事件节点,以及结果

<li>a3</li>
<li>b3</li>

对于第二个事件节点。

知道如何解决这个问题吗?另外,我想我可能会在谓词中滥用 following-sibling,我查看了文档,https://www.w3.org/TR/xpath ,但是不太明白怎么用,谁能帮忙解释一下?

最佳答案

这个 XPath

/r/ab/event/following-sibling::li[not(preceding-sibling::action)]

将选择 event 元素之后的所有 li 元素,并且没有前面的 action 元素兄弟,

<li>a</li>
<li>b</li>
<li>a3</li>
<li>b3</li>

根据要求。

关于html - 某个兄弟之前的所有子元素的 XPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40208307/

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