且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

根据以前的兄弟值,DOMXPath得到同级

更新时间:2022-10-14 21:04:36

一个基本的查询将是找到 bar s包含 AAA ,然后导航到相应的 baz 元素。 / p>

  // foo / bar [。=AAA] /../ baz 

或者,找到所有 baz 并根据相关的栏进行过滤

  // foo / baz [../ bar =AAA] 

baz 包含 c> c c $ b

  // foo [bar =AAA] / baz 

如果你不熟悉XPath表达式,为 XML路径语言(XPath)添加书签。


Let's say I have this:

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

Now, I want to get the baz value, which is coming right after bar with the value AAA (!but only with the value AAA!). I don't know how many "foo"s I have, so I can't exactly write something like:

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

So how can I get the value of the baz, which follows after bar with a particular value?

(For the example above, I would like to get sometext because it comes after AAA)

A basic query would be to find the bars that contain AAA, then navigate to the corresponding baz element.

//foo/bar[.="AAA"]/../baz

Or, find all baz and filter based on the associated bar.

//foo/baz[../bar = "AAA"]

Or, bazs within foos containing bar having AAA.

//foo[bar="AAA"]/baz

If you're not familiar with XPath expressions, bookmark XML Path Language (XPath) for later.