Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обработка сложного xml
Форумы портала PHP.SU » » XML и его обработка » Обработка сложного xml

Страниц (1): [1]
 

1. HipJ - 28 Января, 2012 - 21:35:10 - перейти к сообщению
Имеем xml файл со сложной структурой. Вопрос в том, как правильно его обрабатывать для дальнейшего использования.
Предположим, используем simple xml.
PHP:
скопировать код в буфер обмена
  1.  
  2. $one = simplexml_load_file("1.xml");
  3. foreach ($one->fd->sports->sport->leagues->league as $row) {
  4.        
  5.         echo "<p>".$row->id."</p>";
  6.         echo "<p>".$row->events->event->startDateTime; echo " *** ".$row->events->event->homeTeam->name;echo " - ".$row->events->event->awayTeam->name." ***</p>";
  7.         echo "<p>".$row->events->event->periods->period->description."</p>";
  8.         echo "<p>".$row->events->event->awayTeam->name." ".$row->events->event->periods->period->moneyLine->awayPrice."</p>";
  9.         echo "<p>".$row->events->event->homeTeam->name." ".$row->events->event->periods->period->moneyLine->homePrice."</p>";
  10.  
  11.  
  12. }
  13.  

Этот код дает доступ только к 1му элементу event и его "наследникам". ВТорой элемент тут не получается.
Пример файла в приложении 1,xml
Подскажите, куда копать? Есть мануалы по обработке xml с непростой структурой?
Не понял
2. DlTA - 28 Января, 2012 - 21:53:11 - перейти к сообщению
3. caballero - 28 Января, 2012 - 22:23:40 - перейти к сообщению
Цитата:
ВТорой элемент тут не получается.
Пример файла в приложении 1,xml


все там получается. Одноимныве элементы складывтся в массив
4. HipJ - 29 Января, 2012 - 09:41:06 - перейти к сообщению
Да, действительно, все получается как нужно. Потихоньку продолжаю писать Радость
Другой вопрос:
Элемент fdTime обновляется при каждом запросе к xml фиду, чтобы отследить, когда был сделан последний запрос.
Поэтому, сначала мы получаем данные, обрабатываем их, куда-то сохраняем. Потом делаем запрос с обновленным(последним) fdTime. И сервер нам отдает либо пустой файл, либо изменения в уже существующих элементах, либо новые элементы.
Вопрос в том, как лучше отслеживать изменения? Куда сохранять всю структуру, для дальнейшего анализа? БД? Или можно как-то по-иному сохранять все предыдущие значения, добавляя новые, а потом отображая эти изменения? Растерялся

 

Powered by ExBB FM 1.0 RC1