我正在尝试从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']");
答案 0 :(得分:2)
progrighthead不是一个直播的孩子,而是一个后代。使用
$rt->xpath(".//*[@class='progrighthead']");
将//
放在开头意味着从根目录进行搜索,而不是从当前元素进行搜索。