gpt4 book ai didi

php - DOMXPath 根据先前的同级值获取同级

转载 作者:可可西里 更新时间:2023-11-01 00:16:35 27 4
gpt4 key购买 nike

假设我有这个:

<foo>
<bar>CCC</bar>
<baz>sometexthere</baz>
</foo>
<foo>
<bar>AAA</bar>
<baz>sometext</baz>
</foo>
<foo>
<bar>DDD</bar>
<baz>something</baz>
</foo>

现在,我想获取 baz 值,它紧跟在 bar 之后,值为 AAA(!但只有值 AAA!)。我不知道我有多少个“foo”,所以我不能准确地写出如下内容:

$element->item(0) // I don't know the exact number

那么我怎样才能得到 baz 的值,它跟在具有特定值的 bar 之后?

(对于上面的例子,我想得到sometext,因为它在AAA之后)

最佳答案

根据您希望执行匹配的具体方式,可以使用不同的方法来编写匹配的 XPath。以下是一些选项:

找到一个 baz,那里也有一个 <bar>AAA</bar> ,但不一定在它之前(它可以在它之后,或者它们之间可能有其他元素):

foo[bar = 'AAA']/baz

查找以 <bar>AAA</bar> 开头的 baz :

foo/baz[preceding-sibling::bar = 'AAA']
foo/bar[. = 'AAA']/following-sibling::baz

找到一个立即前面有<bar>AAA</bar>的baz :

foo/baz[preceding-sibling::*[1]/self::bar = 'AAA']
foo/bar[. = 'AAA']/following-sibling::*[1]/self::baz

找一个<bar>AAA</bar>并返回紧随其后的任何元素,不一定名为 baz。

foo/bar[. = 'AAA']/following-sibling::*[1]

关于php - DOMXPath 根据先前的同级值获取同级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7139335/

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