kkk*_*www 3 php xml dom domxpath
假设我有这个:
<foo>
<bar>CCC</bar>
<baz>sometexthere</baz>
</foo>
<foo>
<bar>AAA</bar>
<baz>sometext</baz>
</foo>
<foo>
<bar>DDD</bar>
<baz>something</baz>
</foo>
Run Code Online (Sandbox Code Playgroud)
现在,我想获得baz值,它正好在bar之后,值为AAA(!但只有AAA值!).我不知道我有多少"foo",所以我不能写出类似的东西:
$element->item(0) // I don't know the exact number
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能得到baz的值,它在具有特定值的bar之后呢?
(对于上面的例子,我想得到一些文字,因为它来自AAA)
根据您希望如何执行匹配,有不同的方法来编写匹配的XPath.以下是一些选项:
找到一个baz,其中也有一个<bar>AAA</bar>
,但不一定在它之前(它可能会在之后,或者之间可能还有其他元素):
foo[bar = 'AAA']/baz
Run Code Online (Sandbox Code Playgroud)
找到一个前面的baz <bar>AAA</bar>
:
foo/baz[preceding-sibling::bar = 'AAA']
foo/bar[. = 'AAA']/following-sibling::baz
Run Code Online (Sandbox Code Playgroud)
找到一个紧接着前面的baz <bar>AAA</bar>
:
foo/baz[preceding-sibling::*[1]/self::bar = 'AAA']
foo/bar[. = 'AAA']/following-sibling::*[1]/self::baz
Run Code Online (Sandbox Code Playgroud)
找到<bar>AAA</bar>
并返回紧随其后的任何元素,不一定命名为baz.
foo/bar[. = 'AAA']/following-sibling::*[1]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1976 次 |
最近记录: |