我在 Google App Engine for PHP 上使用 XPath 时遇到问题。
所以我有以下代码:
function getDataXpath($url_str, $xpath_exp_str)
{
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTMLFile($url_str);
libxml_use_internal_errors(false);
$xpath = new DOMXpath($doc);
$elements = $xpath->query("".$xpath_exp_str."");
if (!is_null($elements)) {
return $elements;
}
return false;
}
然后我只是像这样运行它来获取节点:
getDataXpath($url_str, $xpath_exp_str);
因此,在我的本地 PHP 安装(v 5.5.19)上,当我运行以下命令时:
$url_str = 'http://www.alexa.com/topsites/category;0/Top/Shopping';
$xpath_exp_str = "//ul/li[@class='site-listing']/div/p/a";
$xpath_data = getDataXpath($url_str, $xpath_exp_str);
print_r($xpath_data);
我得到以下结果:
DOMNodeList Object ( [length] => 25 );
这是正确的。
但是,当我在 Google App Engine for PHP (v 5.5.26) 上运行相同的代码时,我得到以下信息:
DOMNodeList Object ( [length] => 0 );
有没有人遇到过这个问题,你是如何解决的?