php - 如何使用 php 从 xpath 中获取结果?

标签 php jquery html xpath

我正在尝试使用 php 将文本从 xpath/html 中取出..但没有成功。

例子: https://safeweb.norton.com/report/show?url=google.com

我的 xpath(这是正确的,我已经仔细检查过了) //*[@id="bodyContent"]/div/div/div[3]/div[1]/div[1]/div[2]/div[1]/div/b

我想得到一个结果出现在这里<div> result </div>使用 PHP

下面是我的代码:

<?php
public function getNortonSafe($domain)
{
  try
  {
    $callback_url = "https://safeweb.norton.com/report/show?url=google.com"; //. $domain;

    $curl_response = $this->curl->get($callback_url);

    if ($curl_response->headers['Status-Code'] == "200") {

      libxml_use_internal_errors(TRUE);
      $this->dom_doc->loadHTML($curl_response);
      libxml_use_internal_errors(FALSE);

      $xpath = new DOMXPath($this->dom_doc);
      $tmp = $xpath->query('//*[@id="bodyContent"]/div/div/div[3]/div[1]/div[1]/div[2]/div[1]/div/b')->item(0)->textContent);

      $tmp = explode(' ', trim($tmp));
      $norton_site_test = str_replace(",", "", $tmp[0]);

    } else {
      $norton_site_test = "0";
    }

    $response = array(
      'status' => 'success',
      'data' => array(
        'norton_site_test' => filter_var($norton_site_test, FILTER_SANITIZE_STRING)
      )
    );

  }
  catch (Exception $e)
  {
    $response = array(
      'status' => 'error',
      'msg' => $e->getMessage()
    );
  }
  return $response;
}
?>

HTML

<body>
<p id="norton_site_test">  result-text-here </p>
</body>

最佳答案

当执行 $xpath->query('some xpath here')->text(0) 行时发生错误:Fatal error: Call to undefined method DOMNodeList::text ()。请检查您的 PHP error reporting设置。

DOMXPath::query方法返回只有 item 方法的 DOMNodeList 对象(参见 DOMNodeList )。 您需要调用:

$xpath->query('some xpath here')->item(0)->textContent

从接收到的DOMNodeList对象中获取第一个节点的文本内容。

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

相关文章:

php - where没有按预期工作

php - 我想仅使用 php 和 jquery 而不是 ajax 提交带有其他表单元素的图像(文件)

JavaScript/jQuery 工具提示函数使用 "this"?

javascript - 使用 JavaScript 切换的 Canvas 外菜单是一种好习惯吗?

html - 除了单个元素外,我网站上的所有内容都针对移动设备正确调整了大小,但我不明白为什么?

javascript - 将 PHP 变量分配给 JavaScript 变量,值正在消失

php - 通过PHP向许多用户发送邮件的安全方法

php - TCPDF - 所有页面的页面边框

javascript - 无法使用 Fetch API 获取 JSON,但可以使用 JQuery

javascript - 如何在带滚动的 div 内的动态列表上进行拖放?