xpath得到div id无法正常工作

时间:2015-03-12 07:23:40

标签: php html xpath

我的脚本没有得到任何结果(空白页),我不明白为什么 我在其他网站上使用过这个脚本并且工作

$ url ='http://ip-score.com/checkip/207.224.78.193';

libxml_use_internal_errors(true);
$html = file_get_contents($url);
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);

$my_xpath_query = "//div[@id='MaxMind']";
$result_rows = $xpath->query($my_xpath_query);

foreach ($result_rows as $result_object){
echo $result_object->childNodes->item(0)->nodeValue;
}

我有方面得到这个结果:

207.224.78.193  United States
State: Minnesota
City: Minneapolis
ZIP: 55407
Hostname: 207-224-78-193.mpls.qwest.net, Whois
Organization: CenturyLink, History
ISP: CenturyLink
Mail Server: N\A
IP range: 207.224.71.0 - 207.224.97.191
Current region time: Thu 12th Mar 2015 - 02:52:15 GMT: -05:00
Region timezone: America/Chicago

我想从url(州,城市,邮编......)获取所有信息,但我无法逐一获取,所以我决定将所有信息分成var

1 个答案:

答案 0 :(得分:0)

您的xpath表达式当前正在寻找该div作为文档的根元素。您可能希望使用//div[@id='MaxMind']来完全搜索文档,或者只使用$dom->getElementById("MaxMind"),因为此查询并不真正需要xpath。

另外值得注意的是:该元素的第一个子节点只是一个充满空白的文本节点。要转储div替换

中的所有内容
echo $result_object->childNodes->item(0)->nodeValue;

echo $result_object->nodeValue;

虽然如果你想以更合理的方式获得那些东西,而不只是一个文本blob,像//div[@id='MaxMind']/p这样的xpath表达式将为你提供每个“行”。