php - 如何使用 xpath 获取元素?

标签 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']");

最佳答案

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

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

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

关于php - 如何使用 xpath 获取元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11688355/

相关文章:

php - 使用 XMLReader 选择父节点

php - XML 解析器错误 : entity not defined

php - 查询结果部分分组

PHP Mysql更新集替换完全匹配

PHP 购物车给出 "Notice: Undefined index"错误

PHP SimpleXML - xpath 不起作用,但在在线生成器中它可以

php - Youtube Api 获取带有视频 ID 的视频描述

php - 如何更改 bitnami redmine 默认 URL

xpath - Coalesce 运算符的 XPath 等价物是什么?

java - 如何使用xpath获取xml中节点的属性值?