PHP使用Xpath从DOM获取DIV内容


PHP Get DIV Contents From DOM Using Xpath

我正试图从DOM对象中获取div的内容,我正在使用以下代码。$url是一个有效的字符串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%正确的,有人能告诉我正确的方向吗?

问题是,在我使用$dom->loadHTML的地方,我传递了一个URL字符串,而不是函数期望的HTML。为了解决这个问题,我用file_get_contents函数包装了$url变量,该函数已经解决了这个问题。

旧代码:

$dom->loadHTML($url);

新的工作代码:

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