XPath查询返回空值

时间:2012-12-18 10:03:29

标签: php html xpath domxpath

我有这个HTML代码段:

<td class="alt1 icon smallfont" align="center">
    <div class="cal_imp_high" title="High Impact Expected"/>
</td>

我试图使用此XPath查询获取内部div的类值 cal_imp_high

$xpath->query('//td[@class="alt1 icon smallfont"]/div[@class]/@class');

但它没有显示任何内容,我无法弄清楚什么是错的......请有人帮助我。

最诚挚的问候。

2 个答案:

答案 0 :(得分:3)

你的XPath查询对我来说很好。

<?php
echo phpversion(), "\n";
$doc = new DOMDocument;
$doc->loadxml( <<< eox
<td class="alt1 icon smallfont" align="center">
    <div class="cal_imp_high" title="High Impact Expected"/>
</td>
eox
);
$xpath = new DOMXPath($doc);

foreach( $xpath->query('//td[@class="alt1 icon smallfont"]/div[@class]/@class') as $n ) {
    echo 'class: ', $n->nodeValue, "\n";
}

输出:

5.4.7
class: cal_imp_high

答案 1 :(得分:2)

也许你的td元素实际上在命名空间中?某处有xmlns =“....”声明吗?