2016-07-18 2 views
1

Это то, что я использую:Как разместить оба узла в одном цикле?

libxml_use_internal_errors(true); 
$dom = new DomDocument; 
$dom->loadHTMLFile("https://www.gismeteo.ru/city/weekly/4230/"); 
$xpath = new DomXPath($dom); 
$weekday= $xpath->query('//*[@id="weather-weekly"]//div[@class="weekday"]'); 
$date= $xpath->query('//*[@id="weather-weekly"]//div[@class="s_date"]'); 

foreach ($weekday as $node4){ 
foreach ($date as $node3){ 
echo $node4->nodeValue,$node3->nodeValue,"<br>";}} 

$node4->nodeValue распечатывает день недели sun, mon, tue... и $node3->nodeValue распечатывает день месяца, как я делаю это напечатать все в той же колонке, как этот sat 23.07, sun 24.08...? Благодарю.

ответ

0
$xpath = new DomXPath($dom); 
$days = $xpath->query('//*[@id="weather-weekly"]//div[@class="wbshort"]'); 
foreach ($days as $day) { 
    // find weekday and date under day 
    $weekday= $xpath->query('.//div[@class="weekday"]', $day); 
    $date= $xpath->query('.//div[@class="s_date"]', $day); 
    echo $weekday->item(0)->nodeValue . " " . $date->item(0)->nodeValue; 
} 
+0

Я получил эту ошибку 'Catchable фатальная ошибка: Аргумент 2 передается DOMXPath :: запроса() должен быть экземпляром DOMNode' – MakeMeWise

+0

К сожалению, это опечатка - я потерял' '$ до того дня – splash58

+0

Хорошо, но как это сделать, чтобы распечатать весь список? Он печатает только первый элемент, я попытался установить 'foreach ($ days as $ i => $ day)' и элементы 'item ($ i)' не помогли. – MakeMeWise

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