PHP使用Xpath从DOM获取DIV内容

时间:2015-12-31 10:01:04

标签: php regex dom xpath

我正在尝试从DOM对象获取DIV的内容,我正在使用下面的代码。 $url是一个有效的字符串网址,如果我将其放入浏览器,则会打开一个包含我正在寻找的DIV的网页。

$url是一个字符串,例如:

$url = 'http://api.testdev.com/testpage.html';

代码

$dom = new DOMDocument();
$dom->loadHTML($url);
$xpath = new DOMXPath($dom);
$rawData = $xpath->query('//div[contains(@class, \'listing-products\')]');

我正在使用正则表达式//div[contains(@class, \'listing-products\')]

尝试定位的HTML代码
<div class="listing-products right-content">

我只是得到如下的空数组,日志,屏幕或浏览器控制台中没有错误。

DOMNodeList Object
{
     [length] => 0
}

我怀疑我的正则表达式模式不是100%正确,有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

问题在于我使用$dom->loadHTML的位置我传入的是URL字符串而不是函数所需的HTML,为了解决这个问题,我将$url变量包含在{file_get_contents中。 1}}修复问题的函数。

旧代码:

$dom->loadHTML($url);

新的,有效的代码:

$dom->loadHTML(file_get_contents($url));