使用DOMXpath查询检索具有class = integer的所有节点

时间:2014-04-02 21:27:42

标签: php dom xpath domxpath

我目前拥有这部分html,其中的类是整数:

<span class="1">
    .. some other stuff
</span>
<span class="2">
    .. some other stuff
</span>
<span class="3">
    .. some other stuff
</span>

我需要设置一个查询来获取这些类为整数的子节点。有点像这样:

$oDomObject = $oDomXpath->query('//span[contains(@class, number(something))]');

为了获得这些类为整数的子节点,“某事”会是什么?有这样的运营商吗? span标记只有class属性,没有id或其他。如果我将“某事”设置为“1”

$oDomObject = $oDomXpath->query('//span[contains(@class, number(1))]');

返回带有id,12,21的span标签,任何包含1的数字。如果我使用“*”

$oDomObject = $oDomXpath->query('//span[contains(@class, number(*))]');

它什么都不返回。

我希望我有道理。

谢谢!

1 个答案:

答案 0 :(得分:1)

以下将使用number()函数选择所有类别属性值评估为数字的所有span元素,并且等于相同的值。

//span[number(@class)=number(@class)]

非数字值将评估为NaN,这与任何值(包括NaN)不相等,并且对于谓词测试返回false。