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 :: Версия для печати :: Очень Медленная Работа SilmpleXML парсера
Форумы портала PHP.SU » » XML и его обработка » Очень Медленная Работа SilmpleXML парсера

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

1. Hazrat - 29 Мая, 2012 - 21:48:46 - перейти к сообщению
Народ помогите, очень не простая ситуация, парсер долго парсит XML документ, я бы сказал очень долго в чем может быть причина?

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.  
  4.  function PARSER_XML () {
  5.     $price_xml = 'files/price.xml';      # Документ в Формате XML для Парсинга
  6.    
  7.     $xml = simplexml_load_file($price_xml); # Инициируем обьект SimpleXML
  8.    
  9.     define('MONEY',$xml->Currency); # Курс Валюты в данном XML Документе
  10.    define('DATE',$xml->Date);      # Дата Создания XML файла , Актуальность ее
  11.    
  12.     define ('NUM_CATALOG', $xml->G1->count()); # Число каталогов с тегом G1 т.е самых начальных это Комплектуюшие ноутбуки и т.д.
  13.    
  14.     for ($i = 0; $i < NUM_CATALOG; $i++ ) {
  15.         $root = $xml->G1[$i]; # Корневой элемент. Как бы ссылка для доступа к дочерним элементам
  16.        $G1_MainGroup = $root->MainGroup; # тег MainGroup -  это тег содержаший название данной категории (Категория КОМПЛЕКТУЮЩИЕ ДЛЯ КОМПЬЮТЕРОВ , НОУТБУКИ )
  17.        
  18.         $root_G2 = $root->G2; # Дочерний Элемент G2  
  19.        $root_G2_num =  $root_G2->count(); # Число дочерних Элементов в G2
  20.        
  21.        
  22.         for ( $y = 0 ; $y < $root_G2_num ; $y++ ){
  23.            
  24.              $G2 = $root->G2[$y]; # Корневой Тег для доступа к под каталогам
  25.             $G2_Group = $G2->Group; # Тег Goup - это тег названия под каталога Для Товара тоже самое что и G1->G2->Group 'Видеокарты'
  26.             $root_G3 = $root_G2->G3; # переменная для перебора дочерних элементов G3 , Т.е последний каталог
  27.             $num_G3 =  $G2->G3->count(); # Количество Элементов Подгруппы G1->G2->G3->SubGroup
  28.            
  29.             for ($e = 0; $e < $num_G3; $e++) {
  30.                
  31.                 @$G3_SubGroup = $G2->G3[$e]->SubGroup; # Переменная Храняшая Тег группы товаров G1->G2->G3->SubGroup
  32.                
  33.                 $num_item = $G2->G3[$e]->Item->count(); # Количество Товаров G1->G2->G3->Item
  34.            
  35.                 for ($q = 0; $q < $num_item; $q++ ){
  36.                    
  37.                     $Item = $G2->G3[$e]->Item[$q]; # Переменная Содержашая Элементы
  38.                    $cURL = cURL_PARSER($Item->No);
  39.                    
  40.                     #$parser_info = PARSER_INFO($cURL); скачиваем информацию с сервера
  41.                    #$parser_img = PARSER_IMG($cURL); и картинки
  42.                  
  43.                     $sql = "INSERT INTO `tovar` ( `MainGroup`, `Group`, `SubGroup`, `No`, `Name`, `Brand`, `PartNo`, `Price`, `Avail`)
  44.                                       VALUES   ( '$G1_MainGroup', '$G2_Group', '$G3_SubGroup', '$Item->No', '$Item->Name', '$Item->Brand', '$Item->PartNo', '$Item->Price', '$Item->Avail');" ;
  45.                    
  46.                     DB_MYSQl($sql); # Отпраляем Запрос                  
  47.                }
  48.             }
  49.            
  50.         }
  51.        
  52.        
  53.          
  54.      
  55.          
  56.        
  57.          
  58.     }
  59.    
  60.  }
  61.  
  62.  


Файл XML прилагается, заранее спасибо , очень жду помощи
(Добавление)
Народ Вопрос снят, просто недоглядел , была включена функция $cURL = cURL_PARSER($Item->No); она парсит с сайта , поэтому и долго обрабатывала . Радость

 

Powered by ExBB FM 1.0 RC1