如何使用xpath获取元素?

时间:2012-07-27 13:05:42

标签: php xpath simplexml domdocument

我正在尝试从HTML中获取一些数据

$xdata = simplexml_import_dom($doc);
$datas = $xdata->xpath("//*[@class='proglist']");
$aData = array();
foreach($datas as $data)
{   

    $rightdatas = $data->xpath("*[@class='progright']");
    $rt = $rightdatas[0];
    print_r($rt);
    $content  = $rt->xpath("*[@class='progrighthead']");
    print_r($content  );
}

如果我打印出$rt的内容而不是progrighthead类,那么$content变量为空。为什么呢?

为什么我会收到以下语法的相同结果?

$xdata = simplexml_import_dom($doc);
$datas = $xdata->xpath("//*[@class='proglist']");
$aData = array();
foreach($datas as $data)
{   

    $rightdatas = $data->xpath("*[@class='progright']");
    $rt = $rightdatas[0];
    print_r($rt);
    $content  = $rt->xpath("*[@class='progrighthead']");
}    

$datas    = $xdata->xpath("//*[@class='progrighthead']");

1 个答案:

答案 0 :(得分:2)

progrighthead不是一个直播的孩子,而是一个后代。使用

$rt->xpath(".//*[@class='progrighthead']");

//放在开头意味着从根目录进行搜索,而不是从当前元素进行搜索。