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 [2]
Форумы портала PHP.SU » » XML и его обработка » не могу разобрать xml

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

16. Panoptik - 22 Ноября, 2012 - 22:18:11 - перейти к сообщению
там структура вообще нелогичная
последних 2 элемента item вне родительского item

думаю имеет смысл прогонять циклом искать item, а после если в нем есть еще item, то брать его, если нет, то брать этот более верхнего уровня
17. jromka - 22 Ноября, 2012 - 22:31:23 - перейти к сообщению
хм....завтра пойду к начальству по этому вопросу
18. Panoptik - 22 Ноября, 2012 - 22:48:13 - перейти к сообщению
там довольно понятная структура
есть общее количество административніх единиц 36
каждая из них - это внешний узел item
потом идут его атрибуты(по моему мнению глава всего этого) и после них общее количество подчиненных подразделений и далее соответствующее число элементов - итемы вложенные в родительский

вот и вся структура
просто не могу понять что именно вы хотите извлечь оттуда, различать представителя родительского элемента от дочерних или слить их в единую сущность?
19. jromka - 22 Ноября, 2012 - 22:49:38 - перейти к сообщению
слить все оттуда
20. Panoptik - 22 Ноября, 2012 - 22:51:39 - перейти к сообщению
что значит слить? есть предложение добавить атрибут для главенствующего лица, а всё остальное будет таким же
минут 20 и будет всё пучком
21. jromka - 22 Ноября, 2012 - 22:56:43 - перейти к сообщению
вывести все оттуда ) что не понятно то )
22. caballero - 22 Ноября, 2012 - 23:14:25 - перейти к сообщению
Цитата:
вывести все оттуда ) что не понятно то )

непонятно зачем ты вообще в програмирование полез. Носил бы дальше бананки на базаре.

Нельзя просто вывести
надо понимать что вывести
в каком виде
в какой последовательности

Хочешь кашу из данных - проще простого - прибил xml тэги регуляркой и все дела.
А дальше что c этим делать.
23. Panoptik - 22 Ноября, 2012 - 23:14:36 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2. $source = 'source.xml';
  3. $xml = simplexml_load_file($source);
  4.  
  5. //print_r($xml);
  6. $result = array();
  7.  
  8. foreach($xml as $k => $elem) {
  9.         if($k == 'item') {
  10.                 $mainnode = array();
  11.                 $mainnode['main'] = 1;
  12.                 $r = array();
  13.                 foreach($elem as $knode => $elemnode) {
  14.                         if($knode == 'item') {
  15.                                 $node = array();
  16.                                 $node['main'] = 0;
  17.                                 foreach($elemnode as $key => $value) {
  18.                                         $node[$key] = (string)$value;
  19.                                 }
  20.                                 $r[] = $node;
  21.                         } elseif($knode != 'total') {
  22.                                 $mainnode[$knode] = (string)$elemnode;
  23.                         }
  24.                 }
  25.                 $result[] = array_merge(array($mainnode),$r);
  26.         }
  27. }
  28.  
  29. echo '<pre>';
  30. print_r($result);
  31. echo '</pre>';
  32.  
  33.  


вот преобразование в линейный массив группированный по регионам, можно конечно и в один всё запихнуть. но намек есть, а дальше карты в руки вам
24. jromka - 23 Ноября, 2012 - 14:18:25 - перейти к сообщению
короче )) как мне пояснили )) необходимо сделать рекурсию для данного xml
Структура его такова, один большой класс item, в котором имеются маленькие item, в которых в свою очередь могут встречаться еще маленькие item
25. caballero - 23 Ноября, 2012 - 14:58:29 - перейти к сообщению
jromka пишет:
короче )) как мне пояснили )) необходимо сделать рекурсию для данного xml
Структура его такова, один большой класс item, в котором имеются маленькие item, в которых в свою очередь могут встречаться еще маленькие item

еще короче - simplexml_load_file это все уже делает
26. jromka - 25 Ноября, 2012 - 17:42:24 - перейти к сообщению
нужна рекурсия!

 

Powered by ExBB FM 1.0 RC1