我试图使用php..but获取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
我想得到一个使用php在这里出现的<div> result </div>的结果
下面是我的代码:
<?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>发布于 2017-11-01 19:04:11
执行$xpath->query('some xpath here')->text(0)行时会发生错误:Fatal error: Call to undefined method DOMNodeList::text()。请检查您的PHP 错误报告设置。
DOMXPath::query方法返回只有item方法的DOMNodeList对象(参见DOMNodeList)。你需要打电话:
$xpath->query('some xpath here')->item(0)->textContent
从接收到的DOMNodeList对象获取第一个节点的文本内容。
https://stackoverflow.com/questions/47061158
复制相似问题