如何使用xpath从多个div中提取值

时间:2013-08-07 04:38:30

标签: php xpath

如何使此代码段在我正在解析的页面上返回每个div的{​​{1}}类的值,而不是像现在这样只返回第一个?

age

我有一些类似的代码返回我想要的所有图像,但我似乎无法修改它以返回我想要的匹配$nodelist = $xpath->query('//div[@class="age"]')->item(0); print_r($nodelist->nodeValue); 值:

div

2 个答案:

答案 0 :(得分:0)

您需要使用"*"

  

使用星号()选择前面的每个元素   路径。因此,如果您想匹配td标记内的每个元素   (例如p,div等),你会写:// td /

答案 1 :(得分:0)

这段代码的问题不是XPath,而是它返回后你用它做的。

$nodelist = $xpath->query('//div[@class="age"]')->item(0);
print_r($nodelist->nodeValue);

这会获取所有div,然后使用->item(0)获取第一个,然后将第一个项目分配给变量$nodelist

使用现有代码作为示例,您可以通过移除->item(0)来更改它,将所有结果分配给$nodelist并迭代它们,就像第二个“工作”示例一样:

$nodelist = $xpath->query('//div[@class="age"]');
foreach ($nodelist as $node) 
{
    // Do something with each div
}