%PDF- %PDF-
Direktori : /proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/ |
Current File : //proc/self/root/home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/xml2array.php |
<?php namespace Bitrix\Sale\TradingPlatform; /** * Class Xml2Array * @package Bitrix\Sale\TradingPlatform */ class Xml2Array { /** * @param string $xmlData XML. * @return array Converted. */ public static function convert($xmlData, $convertCharset = true) { if(strlen($xmlData) <= 0) return array(); $result = array(); if($convertCharset && strtolower(SITE_CHARSET) != 'utf-8') $xmlData = \Bitrix\Main\Text\Encoding::convertEncoding($xmlData, SITE_CHARSET, 'UTF-8'); if(preg_replace('/[[:^print:]]/', '', $xmlData) == "<?xml version='1.0' encoding='UTF-8'?>") return array(); //$xmlData = preg_replace('/[[:^print:]]/', '', $xmlData); libxml_use_internal_errors(true); try { $results = new \SimpleXMLElement($xmlData, LIBXML_NOCDATA); } catch(\Exception $e) { $logger = new Logger; $logger->addRecord( Logger::LOG_LEVEL_ERROR, 'TRADING_PLATFORM_XML2ARRAY_ERROR', 'convert', 'Can\'t convert xmlData to SimpleXMLElement. Data: ('.$xmlData.'). Error: '.$e->getMessage() ); return array(); } if(!$results) { $logger = new Logger; $logger->addRecord( Logger::LOG_LEVEL_ERROR, 'TRADING_PLATFORM_XML2ARRAY_ERROR', 'convert', 'Wrong xmlData format. Data: ('.$xmlData.').' ); return array(); } elseif($jsonString = json_encode($results)) { $result = json_decode($jsonString, TRUE); } if(strtolower(SITE_CHARSET) != 'utf-8') $result = \Bitrix\Main\Text\Encoding::convertEncoding($result, 'UTF-8', SITE_CHARSET); return $result; } /** * @param array $branch. * @return array */ public static function normalize(array $branch) { reset($branch); if(key($branch) !== 0) $branch = array( 0 => $branch); return $branch; } }