Xpath按类和任何其他子类选择

时间:2018-04-18 01:46:39

标签: php xpath

是否可以选择具有类值的元素:

<div class="a b"></div>
<div class="a c"></div>
<div class="a d"></div>
<div class="a e"></div>
<div class="a f"></div>

我需要选择所有div属性,其属性值为a ...

我试过这样的事情:

$items = $xpath->query('//div[@class="a *"]');

我试过没有*,但它也没有返回任何内容。

通过类属性值选择这些元素的正确XPath是什么?

2 个答案:

答案 0 :(得分:2)

使用前导和尾随空格填充class属性,并查找&#34; a&#34;:

//div[contains(concat(' ',@class,' '), ' a ')]

这样就可以匹配&#34; a&#34; value是class属性值中的任意值,并且对于诸如class="baz"

之类的内容的误报不匹配

答案 1 :(得分:0)

正如kjhughes所指出的,这是一个错误的答案,因为它匹配内部有'a'的所有内容。

如果您想查找xpath属性包含//div[contains(@class, "a")]的任何div

,可以尝试class查询"a"