- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/tradingplatform/xml2array.php
- Класс: BitrixSaleTradingPlatformXml2Array
- Вызов: Xml2Array::convert
static function convert($xmlData, $convertCharset = true)
{
if($xmlData == '')
return array();
$result = array();
if($convertCharset && mb_strtolower(SITE_CHARSET) != 'utf-8')
$xmlData = BitrixMainTextEncoding::convertEncoding($xmlData, SITE_CHARSET, 'UTF-8');
if(preg_replace('/[[:^print:]]/', '', $xmlData) == "")
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(mb_strtolower(SITE_CHARSET) != 'utf-8')
$result = BitrixMainTextEncoding::convertEncoding($result, 'UTF-8', SITE_CHARSET);
return $result;
}