2015-03-12 3 views
0

моего сценария не получают какие-либо результаты (пустая страницу) и я не понимаю, почему я использовал этот скрипт на других сайтах и ​​работать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

+0

Попробуйте изменить ''/div [@ id = 'MaxMind'] "' to '// div [@ id = 'MaxMind'] // text()'. В цикле for попробуйте 'print_r ($ result_object)' распечатать результат. вы получите node.I думаю, что это будет работать – Krishna38

ответ

0

Ваше выражение xpath в настоящее время ищет этот div как корневой элемент документа. Вероятно, вы хотите использовать //div[@id='MaxMind'] для поиска документа целиком или просто использовать $dom->getElementById("MaxMind"), поскольку xpath не нужен для этого запроса.

Также стоит отметить: первый ребенок этого элемента - это просто текстовый узел, полный пробела. Для того, чтобы выливать все в DIV заменить

echo $result_object->childNodes->item(0)->nodeValue; 

с

echo $result_object->nodeValue; 

Хотя, если вы хотите получить в том, что вещи в более разумным способом, а не только один сгусток текста, выражение XPath, как //div[@id='MaxMind']/p предоставит вам каждую «линию» внутри.

+0

Я протестировал с помощью // div [@ id = 'MaxMind'] и по-прежнему та же проблема – AllCapone1912

+0

Я хочу получить весь текст из этого URL-адреса, после чего я разделил его на новые строки в переменную – AllCapone1912

+0

@ AllCapone1912 Объяснение этого не совсем помогает - отредактируйте свой вопрос и _show_ вывод, который вы ожидаете. –

Смежные вопросы