【问题标题】:How can I get element using xpath?如何使用 xpath 获取元素?
【发布时间】:2012-07-27 13:05:41
【问题描述】:

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

【问题讨论】:

  • 能否将加载的文档包含进来?

标签: php xpath simplexml domdocument


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    相关资源
    最近更新 更多