我正在尝试从 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']");
最佳答案
progrighthead 不是 progright 的子代,而是后代。使用
$rt->xpath(".//*[@class='progrighthead']");
将//
放在开头意味着从根开始搜索,而不是从当前元素开始搜索。
关于php - 如何使用 xpath 获取元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688355/