这篇文章主要介绍了PHP xpath提取网页数据内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
想要使用xpath来解析html内容, PHP自带两个对象
DOMDocument,DOMXpath,其中初始化 loadHtml一般都会报很多警告,但是并不影响使用,用@屏蔽错误。
/**
* 初始化DOMXpath对象
*
* @param [type] $content 网页内容
* @param [array] $pathinfo 匹配信息
*
* @return void
*/
private function _createXpathObj($content, $patinfo)
{
// 如果没有xpath配置项,不初始化xpath
if (!$this->_existsXpathParse($patinfo)) {
return;
}
try {
$dom = new \DOMDocument();
@$dom->loadHtml($content);
$dom->normalize();
$xpath = new \DOMXpath($dom);
$this->xpathObj = $xpath;
} catch (\Exception $e) {
getService('logger')->warning('Parse html fail', ['content' => $content]);
}
}
其中 $node 为 DOMElement 对象。
/**
* 获取Xpath解析值
*
* @param [type] $pat 匹配模式
*
* @return string
*/
private function _getXpathField($pat)
{
$objs = $this->xpathObj->query($pat);
if ($objs->length > 0) {
$node = $objs->item(0);
$outerHTML = $node->ownerDocument->saveHTML($node);
return trim($outerHTML);
# 作为示例 输出innerhtml
//$innerHTML = '';
//foreach ($node->childNodes as $childNode){
// $innerHTML .= $childNode->ownerDocument->saveHTML($childNode);
/
编程基础网
本文标题为:PHP xpath提取网页数据内容代码解析
基础教程推荐
猜你喜欢
- CentOS 7 编译安装PHP7 2023-09-02
- PHP设计模式之状态模式定义与用法详解 2022-10-12
- 在laravel中实现事务回滚的方法 2023-02-22
- PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案 2022-11-26
- PHP树形结构tree类用法示例 2022-12-15
- PHP如何将头像图片转换圆形图片 2023-08-30
- PHP中的输出缓冲控制详解 2023-06-03
- 解析PHP中Exception异常机制 2023-06-13
- php fread函数使用方法总结 2023-01-19
- php+mysql+ajax 局部刷新点赞/取消点赞功能(每个账号只点赞一次) 2023-04-24
