2

我正在尝试从 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']");
4

1 回答 1

2

progrighthead 不是 progright 的孩子,而是后代。采用

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

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

于 2012-07-27T13:12:40.460 回答