Skip to content

Библиотека для парсинга CommerceML 2 файлов.

Notifications You must be signed in to change notification settings

ArtemsWay/parser1c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Библиотека для парсинга CommerceML 2 файлов

Основная цель данной библиотеки - парсинг XML файлов стандарта CommerceML 2 и представление данных в виде объектов.

Установка

  1. Обновите ваш composer.json файл.
"repositories": [
    {
        "type": "vcs",
        "url": "https://github.com/ArtemsWay/parser1c"
    }
],
"require": {

    "artemsway/parser1c": "dev-master"
},
  1. Выполните команду composer update.

Использование

    require 'vendor/autoload.php';
    
    $importFile = 'path/to/file/import0_1.xml';
    $offersFile = 'path/to/file/offers0_1.xml';
    
    $importData = \ArtemsWay\Parser1C\Parser1C::parseImportFile($importFile);
    $offersData = \ArtemsWay\Parser1C\Parser1C::parseOffersFile($offersFile);

Выходные данные

    var_dump($importData);
    
    array:6 [▼
      "schemaVersion" => "2.07"
      "importTime" => "2017-05-13T21:41:15"
      "onlyChanges" => false
      "categories" => array:218 [▶]
      "properties" => array:608 [▶]
      "products" => array:4535 [▶]
    ]
    
    var_dump($offersData);
        
    array:6 [▼
      "schemaVersion" => "2.07"
      "importTime" => "2017-05-13T21:41:15"
      "onlyChanges" => false
      "priceTypes" => array:1 [▶]
      "warehouses" => array:2 [▶]
      "offers" => array:4535 [▶]
    ]

Дополнение

Возможен парсинг части данных.

    use ArtemsWay\Parser1C\Parser1C;
    use ArtemsWay\Parser1C\Parsers\DOM\ImportParser;
    
    $importFile = 'path/to/file/import0_1.xml';
    
    $parser = new Parser1C($importFile, new ImportParser);
    
    $partOfData = $parser->load()->parseProducts()->getData();

Есть возможность добавлять новые классы парсеров

    use ArtemsWay\Parser1C\Parsers\DOM\DOMParser;
    use ArtemsWay\Parser1C\Parsers\ParserInterface;
    
    class ContractorParser extends DOMParser
    {
        public $contractors = [];
        
        public function parseContractors()
        {
            ...
        }
    }

Использование

    use ArtemsWay\Parser1C\Parser1C;
    use ArtemsWay\Parser1C\Parsers\DOM\ImportParser;
    
    $contractorsFile = 'path/to/file/contractors0_1.xml';
    
    $parser = new Parser1C($contractorsFile, new ContractorParser);
    
    $partOfData = $parser->load()->parseAll()->getData();
ToDO
  1. Добавить SAX парсер, для уменьшения потребления RAM памяти.

About

Библиотека для парсинга CommerceML 2 файлов.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages